try 2
This commit is contained in:
@@ -210,18 +210,15 @@ PRIVATE_DEFINITION_START(PIProcess)
|
|||||||
size_t offset = 0;
|
size_t offset = 0;
|
||||||
while (1) {
|
while (1) {
|
||||||
# ifdef WINDOWS
|
# ifdef WINDOWS
|
||||||
DWORD available = 0;
|
PeekNamedPipe(pipes[pipe_type][PipeRead], nullptr, 0, nullptr, &bytes_read, nullptr);
|
||||||
PeekNamedPipe(pipes[pipe_type][PipeRead], nullptr, 0, nullptr, &available, nullptr);
|
if (bytes_read > 0) {
|
||||||
if (available == 0) {
|
|
||||||
read_buffer.resize(offset);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
BOOL ok = ReadFile(pipes[pipe_type][PipeRead],
|
BOOL ok = ReadFile(pipes[pipe_type][PipeRead],
|
||||||
read_buffer.data(offset),
|
read_buffer.data(offset),
|
||||||
piMini(available, read_buffer.size() - offset),
|
piMini(available, read_buffer.size() - offset),
|
||||||
&bytes_read,
|
&bytes_read,
|
||||||
nullptr);
|
nullptr);
|
||||||
if (!ok) bytes_read = 0;
|
if (!ok) bytes_read = 0;
|
||||||
|
}
|
||||||
# else
|
# else
|
||||||
bytes_read = ::read(pipes[pipe_type][PipeRead], read_buffer.data(offset), read_buffer.size() - offset);
|
bytes_read = ::read(pipes[pipe_type][PipeRead], read_buffer.data(offset), read_buffer.size() - offset);
|
||||||
# endif
|
# endif
|
||||||
|
|||||||
Reference in New Issue
Block a user