public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* select() and poll() inconsistency in writability test
@ 2006-09-13 13:29 Frank van Maarseveen
  0 siblings, 0 replies; only message in thread
From: Frank van Maarseveen @ 2006-09-13 13:29 UTC (permalink / raw)
  To: linux-kernel

A pipe without readers will yield EPIPE/SIGPIPE when trying to write()
into. A broken or shutdown TCP connection will behave the same modulo
networking errors (which are returned only once as it seems).

A pipe without readers will set POLLERR in pipe_poll() and this turns
up as being writable according to select() so it won't wait. However, a
TCP connection no longer open [for writing] does not set POLLERR/POLLOUT
in tcp_poll(): so it is not yet writable according to select() causing it
to wait. This is not consistent behavior.

Shouldn't the kernel set POLLOUT in both "EPIPE" cases instead of
POLLERR/nothing as it does now?

-- 
Frank

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-09-13 13:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-13 13:29 select() and poll() inconsistency in writability test Frank van Maarseveen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox