just read while EAGAIN/EWOULDBLOCK is reached