[Cialug] Select and poll
Brian Wood
woodbrian77 at gmail.com
Thu Aug 30 15:36:00 UTC 2018
On Thu, Aug 30, 2018 at 9:08 AM Brian Wood <woodbrian77 at gmail.com> wrote:
> The docs for select() says:
>
> Under Linux, select() may report a socket file descriptor as
> "ready for reading", while nevertheless a subsequent read
> blocks. This could for example happen when data has arrived
> but upon examination has wrong checksum and is discarded.
> There may be other circumstances in which a file descriptor is
> spuriously reported as ready. Thus it may be safer to use
> O_NONBLOCK on sockets that should not block.
>
> I was thinking that poll() is also similarly afflicted on Linux, but
> the docs for poll() don't mention anything similar. Does anyone
> know if poll() used to have the problem, but no longer does
> or if it does, but the docs fail to mention it?
>
I was looking at docs in the "3P" section on poll() -- I guess the 'P'
may stand for Posix. When I checked poll() in section 2, there's a
note referring you to select() spurious bugs. So I believe this is
still a problem for poll().
I have another program where I'm still using poll() so I guess I'll
have to take some defensive measures related to this.
Brian
Ebenezer Enterprises
http://webEbenezer.net
More information about the Cialug
mailing list