util.c: ignore pollfd.revent for loop_read/loop_write

Let read()/write() report any error/EOF.
This commit is contained in:
Chen Jie
2013-10-06 10:48:20 -04:00
committed by Zbigniew Jędrzejewski-Szmek
parent 40d128581e
commit e543e472c3
+8 -4
View File
@@ -2193,8 +2193,10 @@ ssize_t loop_read(int fd, void *buf, size_t nbytes, bool do_poll) {
return n > 0 ? n : -errno;
}
if (pollfd.revents != POLLIN)
return n > 0 ? n : -EIO;
/* We knowingly ignore the revents value here,
* and expect that any error/EOF is reported
* via read()/write()
*/
continue;
}
@@ -2241,8 +2243,10 @@ ssize_t loop_write(int fd, const void *buf, size_t nbytes, bool do_poll) {
return n > 0 ? n : -errno;
}
if (pollfd.revents != POLLOUT)
return n > 0 ? n : -EIO;
/* We knowingly ignore the revents value here,
* and expect that any error/EOF is reported
* via read()/write()
*/
continue;
}