As in the title what does EAGAIN mean?
EAGAIN is often raised when performing non-blocking I/O. It means "there is no data available right now, try again later".
It might (or might not) be the same as EWOULDBLOCK, which means "your thread would have to block in order to do that".
EWOULDBLOCK