Date: Wed, 10 Sep 2003 09:34:17 -0400 (EDT) From: Daniel Eischen <eischen@vigrid.com> To: Kern Sibbald <kern@sibbald.com> Cc: Dan Langille <dan@langille.org> Subject: Re: comments on proposed uthread_write.c changes Message-ID: <Pine.GSO.4.10.10309100932400.6143-100000@pcnet5.pcnet.com> In-Reply-To: <1063178382.15482.550.camel@rufus>
next in thread | previous in thread | raw e-mail | index | archive | help
On 10 Sep 2003, Kern Sibbald wrote: > Hello, > > On Wed, 2003-09-10 at 02:34, Garrett Wollman wrote: > > <<On Tue, 9 Sep 2003 19:46:12 -0400 (EDT), Daniel Eischen <eischen@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. > > > > -GAWollman > > Can you explain how you came to the conclusion that a non-zero > write may not return zero? Keep in mind that from the > user's or my standpoint, we are talking about blocking > writes. He saying that it is an exception and should be returned as such to the caller. -- Dan Eischen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10309100932400.6143-100000>