Date: Fri, 24 Mar 2006 20:50:28 GMT From: Oliver Fromme <olli@lurza.secnetix.de> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/94772: FIFOs (named pipes) + select() == broken Message-ID: <200603242050.k2OKoSnY016279@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/94772; it has been noted by GNATS. From: Oliver Fromme <olli@lurza.secnetix.de> To: bde@zeta.org.au (Bruce Evans) Cc: bug-followup@freebsd.org Subject: Re: kern/94772: FIFOs (named pipes) + select() == broken Date: Fri, 24 Mar 2006 21:49:29 +0100 (CET) Oliver Fromme wrote: > Oh, by the way, the patch set that I mailed still has > two failure cases with nameless pipes (I didn't notice > at first because I only tested the NAMEDPIPE case): > > not ok 4 Pipe state 6a: expected POLLHUP; got POLLIN | POLLHUP > not ok 8 Pipe state 6a: expected POLLHUP; got POLLIN | POLLHUP > > Those were broken before, too, so my patch doesn't make > things worse, at least. :-) I'll try to fix those, > too. Those were easy to fix. It's basically a patch that just removes one line in kern/sys_pipe.c:pipe_poll(). This patch is independent from the others and can be applied separately. I've added it to the patchset on my website: http://www.secnetix.de/~olli/tmp/fifodiff.txt Now _all_ current checks from the test programs are successful, both select() and poll(), and both for FIFOs and for nameless pipes. Best regards Oliver --- src/sys/kern/sys_pipe.c.orig Tue Jan 31 16:44:51 2006 +++ src/sys/kern/sys_pipe.c Fri Mar 24 19:23:03 2006 @@ -1350,8 +1350,7 @@ #endif if (events & (POLLIN | POLLRDNORM)) if ((rpipe->pipe_state & PIPE_DIRECTW) || - (rpipe->pipe_buffer.cnt > 0) || - (rpipe->pipe_state & PIPE_EOF)) + (rpipe->pipe_buffer.cnt > 0)) revents |= events & (POLLIN | POLLRDNORM); if (events & (POLLOUT | POLLWRNORM)) -- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd Any opinions expressed in this message may be personal to the author and may not necessarily reflect the opinions of secnetix in any way. "In My Egoistical Opinion, most people's C programs should be indented six feet downward and covered with dirt." -- Blair P. Houghton
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603242050.k2OKoSnY016279>