NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/57369: unexpected poll timeout on pipe
The following reply was made to PR kern/57369; it has been noted by GNATS.
From: mlelstv%serpens.de@localhost (Michael van Elst)
To: gnats-bugs%netbsd.org@localhost
Cc:
Subject: Re: kern/57369: unexpected poll timeout on pipe
Date: Thu, 20 Apr 2023 06:22:36 -0000 (UTC)
yamt9999%gmail.com@localhost writes:
>please see the following test code.
>(it's available on github as well: https://github.com/yamt/garbage/blob/master/c/poll/test.c)
>it succeeds on macOS and ubuntu.
>but on netbsd, poll times out. (returns 0)
>its 9.3 GENERIC kernel + older userland if it matters.
This can be changed with:
Index: sys/kern/sys_pipe.c
===================================================================
RCS file: /cvsroot/src/sys/kern/sys_pipe.c,v
retrieving revision 1.158
diff -p -u -r1.158 sys_pipe.c
--- sys/kern/sys_pipe.c 11 Oct 2021 01:07:36 -0000 1.158
+++ sys/kern/sys_pipe.c 20 Apr 2023 06:20:45 -0000
@@ -846,7 +846,7 @@ pipe_poll(file_t *fp, int events)
revents |= POLLHUP;
if (revents == 0) {
- if (events & (POLLIN | POLLRDNORM))
+ if (events & (POLLIN | POLLHUP | POLLRDNORM))
selrecord(curlwp, &rpipe->pipe_sel);
if (events & (POLLOUT | POLLWRNORM))
But I don't see that this has ever worked. It also doesn't help (alone)
for the opposite direction.
Home |
Main Index |
Thread Index |
Old Index