apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Orton <jor...@redhat.com>
Subject Re: [PATCH] pollset_poll() improvements
Date Thu, 12 Aug 2004 14:55:41 GMT
On Thu, Aug 12, 2004 at 10:44:29AM +0100, Joe Orton wrote:
> warnings on LP64 platforms.  Is there a cleaner alternative?  epoll
> stuff looks good, I'll commit that.

Actually there's a problem: this change breaks apr_pollset_remove();
when the query_set array is shuffled up after removing a descriptor, any
epoll descriptors may still reference the old indexes into query_set
from data.u32.
 
The testpoll.c change to pollset_remove actually hides this: if you get
it to print ->client_data of each returned event it shows the problem:

$ ./testall testpoll
testpoll            : |got event with data 0x1
-got event with data 0x4    <- !!! should be 0x3
/got event with data 0x4
SUCCESS

The best fix for this would probably be to have apr_pollset_destroy
leave holes in the query_set array which apr_pollset_add will fill in, I 
think?

joe


Mime
View raw message