if (nbytes < 0)
{
- if (errno == EAGAIN)
+ if (errno == EAGAIN || errno == EWOULDBLOCK)
return read_something; // no (more) data was waiting
else if (errno == EINTR)
{
int rtn;
while ((rtn=::write(sock, data.data()+offset, write_size)) == -1 &&
- (errno == EAGAIN || errno == EINTR))
+ (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR))
{
wait_ready_to_write(sock,write_timeout);
- LOGSTREAM(debug,"resuming write() call after EAGAIN or EINTR");
+ LOGSTREAM(debug,"resuming write() call after EAGAIN or EINTR or EWOULDBLOCK");
}
if (rtn == -1)