vm/filecopy: support nonblocking fd in read_all

This will be needed to (non blocking) check if data is available on pipe -
especially to receive possible error from the other end (which will be
introduced sometime later).
This commit is contained in:
Marek Marczykowski 2012-08-25 01:22:00 +02:00
parent 4ca3961684
commit 591a89c9d2

View File

@ -75,9 +75,14 @@ int read_all(int fd, void *buf, int size)
return 0;
}
if (ret < 0) {
perror_wrapper("read");
if (errno != EAGAIN)
perror_wrapper("read");
return 0;
}
if (got_read == 0) {
// force blocking operation on further reads
set_block(fd);
}
got_read += ret;
}
// fprintf(stderr, "read %d bytes\n", size);