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