[zeromq-dev] patch: non-blocking tcp accept

Pieter Hintjens ph at imatix.com
Tue Apr 28 13:07:01 CEST 2009


On Tue, Apr 28, 2009 at 12:53 PM, Martin Sustrik <sustrik at fastmq.com> wrote:

> Anyway, it seems that checking for both errors everywhere we are
> checking for one of the two at the moment would yield a sane result.

Historically some platforms treated the two conditions differently
depending on whether or not they had some form of polled asynchronous
I/O.  You'd ask for a non-blocking read or write and if no data was
available you'd get EWOULDBLOCK.  Clumsy, and happily never became a
mainsteam model.

In iMatix code we've always treated EGAIN and EWOULDBLOCK as identical
conditions, either of which may occur depending on the platform.  "if
(errno == EAGAIN || errno == EWOULDBLOCK)..."

-Pieter



More information about the zeromq-dev mailing list