]> sourceware.org Git - newlib-cygwin.git/commit
Always try to write complete incoming buffer on pipes and fifos
authorCorinna Vinschen <corinna@vinschen.de>
Sat, 14 Jan 2017 15:29:06 +0000 (16:29 +0100)
committerCorinna Vinschen <corinna@vinschen.de>
Sat, 14 Jan 2017 15:29:06 +0000 (16:29 +0100)
commit688d943a520cf79b04e67d890cdeeefaf90d269c
tree8390c0d9aa3e98cf7534146b9d3f446442edd37d
parent338ce06971647635ebeeab0abd2e15d3daf3fb31
Always try to write complete incoming buffer on pipes and fifos

This patch fixes the following problem:

Commit 9636c426 refactored the pipe code especially to make sure
to call WriteFile only with chunks matching the maximum atomic write
count.  This accidentally introduced a small change in behaviour
on blocking pipes due to the success case falling through into the
error case.  Rather then writing atomic chunks until all bytes are
written, the code immediately broke from the loop after writing
the first chunk, basically the same as in case of non-blocking
writes.  This behaviour is not compliant to POSIX which requires

 "Write requests to a pipe or FIFO [...]

  * If the O_NONBLOCK flag is clear, a write request may cause the
    thread to block, but on normal completion it shall return nbyte."

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
winsup/cygwin/fhandler.cc
This page took 0.029685 seconds and 5 git commands to generate.