Created attachment 1355 [details] Patch to fix atomicio and atomiciov non-polling spin atomicio contains the following in the read/write loop: ----- case -1: #ifdef EWOULDBLOCK if (errno == EINTR || errno == EWOULDBLOCK) #else if (errno == EINTR) #endif continue; if (errno == EAGAIN) { (void)poll(&pfd, 1, -1); continue; } return 0; ----- On systems where errno is set to EWOULDBLOCK we spin on the read or write without polling. On many other systems (Linux, Solaris, IRIX, ...) EWOULDBLOCK is defined as EAGAIN, and when errno is set to EAGAIN we spin on the read or write without polling. Please see patch. thanks, --ben
Patch applied - thanks.
Fix shipped in 4.9/4.9p1 release.