Are further reads meaningful/defined on this stream? 
Another problem if we just go on: 
In case `io_poll` is called with argument `ms<0`, we would block forever after an error (!= UV_EOF, != UV_ENOBUFS, alloc_cb allocated n>0 bytes and set `reading=true`) in the while loop, because no new buffer could be allocated for reading.