Re: Is POLLHUP an input-only or bidirectional condition? (was: epollreporting events when it hasn't been asked to)

From: Davide Libenzi
Date: Sat Apr 03 2004 - 21:53:12 EST


On Sun, 4 Apr 2004, Jamie Lokier wrote:

> A comment in eventpoll.c says:
>
> * This semaphore is acquired by ep_free() during the epoll file
> * cleanup path and it is also acquired by eventpoll_release()
> * if a file has been pushed inside an epoll set and it is then
> * close()d without a previous call toepoll_ctl(EPOLL_CTL_DEL).
>
> I.e. implying that the final close() is possible while it's registered.
> (Btw, a function called eventpoll_release() doesn't exist).

Woops, you're right. The function is inside include/linux/eventpoll.h
because it has been split into an inline to handle the fast path, plus the
slow path eventpoll_release_file(). I'll send a patch to Andrew to fix
comments.


> What happens when a file descriptor is closed while it is inside the set?
>
> I guess it's simply dropped from the set, is that right?

Yes, it is automatically removed from the epoll set, iif the underlying
file* count goes to zero.


- Davide


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/