Alfred Perlstein wrote:
> > If a programmer does not ever wish to block under any circumstances, it's
> > his obligation to communicate this desire to the implementation. Otherwise,
> > the implementation can block if it doesn't have data or an error available
> > at the instant 'read' is called, regardless of what it may have known or
> > done in the past.
> Yes, and as you mentioned, it was _bugs_ in the operating system
> that did this.
Not for writes. POLLOUT may be returned when the kernel thinks you have
enough memory to do a write, but someone else may allocate memory before
you call write(). Or does POLLOUT not work this way?
For read, you still want to declare the sockets non-blocking so your
code is robust on _other_ operating systems. It's pretty straightforward.