non-_WIN32 platforms don't consider EWOULDBLOCK in ERRNO_IS_EAGAIN()
#if defined(_WIN32)
...
#define ERRNO_IS_EAGAIN(e) ((e) == EAGAIN || (e) == WSAEWOULDBLOCK)
...
#else
...
#define ERRNO_IS_EAGAIN(e) ((e) == EAGAIN)
EAGAIN
and EWOULDBLOCK
have the same errno in most platforms, but there are some cases where it's not the same:
http://stackoverflow.com/questions/7003234/which-systems-define-eagain-and-ewouldblock-as-different-values
Reported by oftc_must_be_destroyed
.