From 3bcb778628218eb11ff116195b8902554ff23feb Mon Sep 17 00:00:00 2001 From: "andrey.bychkov" Date: Wed, 13 Aug 2025 22:17:04 +0300 Subject: [PATCH] try 2 --- libs/main/system/piprocess.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/libs/main/system/piprocess.cpp b/libs/main/system/piprocess.cpp index a21b6930..adfcfac3 100644 --- a/libs/main/system/piprocess.cpp +++ b/libs/main/system/piprocess.cpp @@ -210,18 +210,15 @@ PRIVATE_DEFINITION_START(PIProcess) size_t offset = 0; while (1) { # ifdef WINDOWS - DWORD available = 0; - PeekNamedPipe(pipes[pipe_type][PipeRead], nullptr, 0, nullptr, &available, nullptr); - if (available == 0) { - read_buffer.resize(offset); - break; + PeekNamedPipe(pipes[pipe_type][PipeRead], nullptr, 0, nullptr, &bytes_read, nullptr); + if (bytes_read > 0) { + BOOL ok = ReadFile(pipes[pipe_type][PipeRead], + read_buffer.data(offset), + piMini(available, read_buffer.size() - offset), + &bytes_read, + nullptr); + if (!ok) bytes_read = 0; } - BOOL ok = ReadFile(pipes[pipe_type][PipeRead], - read_buffer.data(offset), - piMini(available, read_buffer.size() - offset), - &bytes_read, - nullptr); - if (!ok) bytes_read = 0; # else bytes_read = ::read(pipes[pipe_type][PipeRead], read_buffer.data(offset), read_buffer.size() - offset); # endif