eloop: fix leaving dead FDs pollable

We used to remove dead FDs from the epoll-loop, but we should do this only
if they are no longer readable. An FD might be dead/HUP but still
readable.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
David Herrmann 2012-10-07 13:09:27 +02:00
parent 0996ed38a0
commit 70bfc314e0

View File

@ -836,7 +836,7 @@ int ev_eloop_dispatch(struct ev_eloop *loop, int timeout)
continue;
mask = convert_mask(ep[i].events);
if (mask & EV_HUP)
if ((mask & (EV_ERR | EV_HUP)) == mask)
ev_fd_disable(fd);
fd->cb(fd, mask, fd->data);