Re: [PATCH/RFC] POLLHUP tinkering ...

From: Davide Libenzi
Date: Sun Jan 08 2006 - 19:09:52 EST


On Sun, 8 Jan 2006, David S. Miller wrote:

From: Davide Libenzi <davidel@xxxxxxxxxxxxxxx>
Date: Sun, 8 Jan 2006 16:02:10 -0800 (PST)

But if and hangup happened with some data (data + FIN), they won't
receive any more events for the Linux poll subsystem (and epoll,
when using the event triggered interface), so they are forced to
issue an extra read() after the loop to detect the EOF
condition. Besides from the extra read() overhead, the code does not
come exactly pretty.

The extra last read is always necessary, it's an error synchronization
barrier. Did you know that?

If a partial read or write hits an error, the successful amount of
bytes read or written before the error occurred is returned. Then any
subsequent read or write will report the error immediately.

Sorry for the missing info, but I was clearly talking about O_NONBLOCK here.



- 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/