handle O_NONBLOCK'ed pipes specific error on write()
authorRitt Konstantin <ritt.ks@gmail.com>
Tue, 11 Jan 2011 10:31:44 +0000 (11:31 +0100)
committerOlivier Goffart <olivier.goffart@nokia.com>
Tue, 11 Jan 2011 10:31:44 +0000 (11:31 +0100)
commit7f2e9e43234a112e845568a4329a869975f73a21
tree66f140dfec72b06a9189ef88b2dbbee776e85e21
parent222fb565e28d5ba7f402755762c6a5df6ffcdd37
handle O_NONBLOCK'ed pipes specific error on write()

according to the write(2) docs:

When write requests greater than {PIPE_BUF} bytes to a pipe that
has available space at least 1 byte, if O_NONBLOCK is set,
write transfers what it can and returns the number of bytes written.

When write requests of {PIPE_BUF} or less  bytes to a pipe that has no
enough space, or write requests for greater than {PIPE_BUF} bytes
to a pipe that has no space, if O_NONBLOCK  is  set,
write returns -1 and sets errno to EAGAIN.

Merge-request: 997
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
src/corelib/io/qprocess.cpp
src/corelib/io/qprocess_unix.cpp