commit 8f830207c47987de9767130d54abff79c8ec257d (tree)
parent 53d8a25dab5ddcea16ac70cdcdf28cb3e4944cbb
Author: Jonathan Marler <johnnymarler@gmail.com>
Date: Sun, 6 Feb 2022 06:05:40 -0700
fix bug I think I found while manually reviewing
Diffstat:
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/lib/std/child_process.zig b/lib/std/child_process.zig
@@ -288,10 +288,8 @@ pub const ChildProcess = struct {
else => |err| return windows.unexpectedError(err),
}
}
- if (wait_object_count == 0)
- return;
- while (true) {
+ while (wait_object_count > 0) {
const status = windows.kernel32.WaitForMultipleObjects(wait_object_count, &wait_objects, 0, windows.INFINITE);
if (status == windows.WAIT_FAILED) {
switch (windows.kernel32.GetLastError()) {
@@ -315,11 +313,7 @@ pub const ChildProcess = struct {
var read_bytes: u32 = undefined;
if (windows.kernel32.GetOverlappedResult(handles[i], &overlapped[i], &read_bytes, 0) == 0) {
switch (windows.kernel32.GetLastError()) {
- .BROKEN_PIPE => {
- if (wait_object_count == 0)
- break;
- continue;
- },
+ .BROKEN_PIPE => continue,
else => |err| return windows.unexpectedError(err),
}
}