If __sys_write() returns 0, allow that to exit the loop in libc_r's

wrapped version of write().

Submitted by:	dan@langille.org
This commit is contained in:
Daniel Eischen 2003-09-29 13:41:26 +00:00
parent be0dabc1bc
commit fcd58c1978

View File

@ -95,7 +95,7 @@ _write(int fd, const void *buf, size_t nbytes)
* write:
*/
if (blocking && ((n < 0 && (errno == EWOULDBLOCK ||
errno == EAGAIN)) || (n >= 0 && num < nbytes))) {
errno == EAGAIN)) || (n > 0 && num < nbytes))) {
curthread->data.fd.fd = fd;
_thread_kern_set_timeout(NULL);
@ -133,7 +133,7 @@ _write(int fd, const void *buf, size_t nbytes)
* If there was an error, return partial success
* (if any bytes were written) or else the error:
*/
} else if (n < 0) {
} else if (n <= 0) {
if (num > 0)
ret = num;
else