Reviewed-by:
Signed-off-by: Takashi Yano <[email protected]>
---
winsup/cygwin/fhandler/pipe.cc | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/winsup/cygwin/fhandler/pipe.cc b/winsup/cygwin/fhandler/pipe.cc
index e35d523bb..a80a837f9 100644
--- a/winsup/cygwin/fhandler/pipe.cc
+++ b/winsup/cygwin/fhandler/pipe.cc
@@ -443,7 +443,6 @@ ssize_t
fhandler_pipe_fifo::raw_write (const void *ptr, size_t len)
{
size_t nbytes = 0;
- ULONG chunk;
NTSTATUS status = STATUS_SUCCESS;
IO_STATUS_BLOCK io;
HANDLE evt;
@@ -540,11 +539,6 @@ fhandler_pipe_fifo::raw_write (const void *ptr, size_t len)
}
}
- if (len <= (size_t) avail)
- chunk = len;
- else
- chunk = avail;
-
if (!(evt = CreateEvent (NULL, false, false, NULL)))
{
__seterrno ();
@@ -557,14 +551,14 @@ fhandler_pipe_fifo::raw_write (const void *ptr, size_t
len)
while (nbytes < len)
{
ULONG_PTR nbytes_now = 0;
- size_t left = len - nbytes;
ULONG len1;
+ size_t left = len - nbytes;
DWORD waitret = WAIT_OBJECT_0;
- if (left > chunk && !is_nonblocking ())
- len1 = chunk;
- else
+ if (left < (size_t) avail || is_nonblocking ())
len1 = (ULONG) left;
+ else
+ len1 = (ULONG) avail;
/* NtWriteFile returns success with # of bytes written == 0 if writing
on a non-blocking pipe fails because the pipe buffer doesn't have
--
2.45.1