diff options
author | 2022-12-02 00:25:30 -0800 | |
---|---|---|
committer | 2022-12-02 00:25:30 -0800 | |
commit | e9eb88355b86edbb59f4c405f210142b3c1cf045 (patch) | |
tree | c99d845e8589c7ae8e732691e2259e6276d1b1d0 | |
parent | 9f5564b4bc23d6958689431bfb8b5190eedfeedc (diff) | |
download | bun-e9eb88355b86edbb59f4c405f210142b3c1cf045.tar.gz bun-e9eb88355b86edbb59f4c405f210142b3c1cf045.tar.zst bun-e9eb88355b86edbb59f4c405f210142b3c1cf045.zip |
Close stdin earlier
-rw-r--r-- | src/bun.js/api/bun/subprocess.zig | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/bun.js/api/bun/subprocess.zig b/src/bun.js/api/bun/subprocess.zig index 400a49215..75f1eb05c 100644 --- a/src/bun.js/api/bun/subprocess.zig +++ b/src/bun.js/api/bun/subprocess.zig @@ -1364,6 +1364,7 @@ pub const Subprocess = struct { subprocess.stdin.buffered_input.writeIfPossible(true); } } + subprocess.closeIO(.stdin); { var poll = JSC.FilePoll.init(jsc_vm, pidfd, .{}, Subprocess, subprocess); @@ -1387,6 +1388,14 @@ pub const Subprocess = struct { } while (!subprocess.hasExited()) { + if (subprocess.stderr == .pipe and subprocess.stderr.pipe == .buffer) { + subprocess.stderr.pipe.buffer.readAll(); + } + + if (subprocess.stdout == .pipe and subprocess.stdout.pipe == .buffer) { + subprocess.stdout.pipe.buffer.readAll(); + } + jsc_vm.tick(); jsc_vm.eventLoop().autoTick(); } |