diff options
author | deischen <deischen@FreeBSD.org> | 2003-09-29 13:41:26 +0000 |
---|---|---|
committer | deischen <deischen@FreeBSD.org> | 2003-09-29 13:41:26 +0000 |
commit | c568e81b8f4e488590ce470487e671f615491e59 (patch) | |
tree | feedcb58690cda51d991a21d32b1b028bf509260 /lib | |
parent | e8c883403c81d49b943d599a73a93473c79196fa (diff) | |
download | FreeBSD-src-c568e81b8f4e488590ce470487e671f615491e59.zip FreeBSD-src-c568e81b8f4e488590ce470487e671f615491e59.tar.gz |
If __sys_write() returns 0, allow that to exit the loop in libc_r's
wrapped version of write().
Submitted by: dan@langille.org
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc_r/uthread/uthread_write.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libc_r/uthread/uthread_write.c b/lib/libc_r/uthread/uthread_write.c index 85ef9eb..123a88e 100644 --- a/lib/libc_r/uthread/uthread_write.c +++ b/lib/libc_r/uthread/uthread_write.c @@ -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 |