epoll patch - status?

Mike McCormack mike at codeweavers.com
Sun Sep 12 12:53:17 CDT 2004


Shachar Shemesh wrote:

> However, with your patch, things are different. The "revents" equivalent 
> is stored in an array dedicated to the epoll results, and it is 
> impossible for the del-user function to clear it. We do check that 
> "Events" is not zero, but it's not. We therefor think that the events 
> flagged for the old occupant of user #3 actually belong to the new 
> occupant, and we handle it incorrectly.

I've sent three patches.

The first one (epoll-mm-3.diff) had this problem.

The second one (epoll-mm-4.diff) used pointers named epoll_ev_first and 
epoll_ev_last to locate the returned events and clear them in 
do_epoll_remove(), so did not have the problem.

The third one (epoll-mm-5.diff) [*] distributes the events to the pollfd 
array in epoll_loop(), and they are cleared in set_fd_events(), which is 
the same mechanism that is used by select_loop().

Do you still think my third patch has the problem?

Mike


[*] http://www.winehq.org/hypermail/wine-patches/2004/09/0172.html



More information about the wine-devel mailing list