comments on proposed uthread_write.c changes
Daniel Eischen
eischen at vigrid.com
Tue Sep 9 17:46:12 PDT 2003
On Tue, 9 Sep 2003, Garrett Wollman wrote:
> <<On Tue, 9 Sep 2003 19:46:12 -0400 (EDT), Daniel Eischen <eischen at vigrid.com> said:
>
> > Libc_r's write treats a return of 0 from __sys_write() as a
> > partial write and continues looping.
>
> This is a bug. The Standard is quite clear that a write of zero bytes
> is not possible unless the supplied buffer length is zero. In the
> specific case of non-blocking files, if data might be written but
> doing so would cause the calling thread to block, write() must return
> -1 with errno set to [EAGAIN]; it may not return zero. Therefore, a
> zero return from write() always indicates a permanent condition.
Thanks.
Dan (Langille), go ahead and commit the fix to -current if
you'd like.
--
Dan Eischen
More information about the freebsd-standards
mailing list