From: H. Peter Anvin Date: Sun, 04 Jun 2006 19:05:32 GMT Subject: Re: Clean up sha1 file writing Message-ID: <44832EFC.4030507@zytor.com> In-Reply-To: Linus Torvalds wrote: > > On Sun, 4 Jun 2006, Linus Torvalds wrote: >> On Sun, 4 Jun 2006, H. Peter Anvin wrote: >>> Or if you're getting a SIGWINCH in the middle of it. >>> >>> Any POSIX system will interrupt the transfer and return a short read on >>> receiving a signal. >> Only for interruptible fd's, though, which normally a real "file" won't >> be. > > And _usually_ only if you actually have a SIGWINCH handler. > > Although older Linux kernels were broken in this regard. They'd interrupt > a socket/pipe read or write even for a signal that ended up being ignored. > > So it's absolutely the case that having the loop is always the safer thing > to do, and it's never the _wrong_ thing to do. > Right. I tend to think of it as implementation-defined the cases where it happen to be safe, with the one exception of transactions which are smaller than PIPE_BUF that are directed to a pipe. -hpa