OS X poll breakage (Was: Please help test recent changes)

Damien Miller djm at mindrot.org
Wed Jan 12 09:42:52 AEDT 2022


On Tue, 11 Jan 2022, Demi Marie Obenour wrote:

> > Wow, it looks like Darwin's poll(2) is completely broken for
> > character- special devices (at least). E.g. the attached program
> > spins shows similar behaviour when run on /dev/null - it spins,
> > returning revents=POLLNVAL.
>
> Is using kqueue(2) an option? That’s faster, and it doesn’t have the
> problem with large file descriptors that poll(2) has.

No, because it's not cross-platform and I don't want to have to maintain
multiple mainloops (believe me, one is more than enough). It would have
been really nice if the OSS Unix-like operating systems has standardised
on one event notification; kqueue and epoll are both fine.

Also, it seems like the OS X kqueue(2) implementation suffers from the
same bug anyway. I suspect that this is the root cause, and that their
poll(2) is built on top of kqueue(2).

-d


More information about the openssh-unix-dev mailing list