Skip to content

child_process: honor child.stdout.pause() once the stream has flowed - #36035

Merged
Jarred-Sumner merged 8 commits into
mainfrom
farm/7a82ecb1/child-process-stdout-pause-backpressure
Jul 29, 2026
Merged

child_process: honor child.stdout.pause() once the stream has flowed#36035
Jarred-Sumner merged 8 commits into
mainfrom
farm/7a82ecb1/child-process-stdout-pause-backpressure

io(posix): re-check is_done() after on_read_chunk in the with-buffer …

eb220c5
Select commit
Loading
Failed to load commit list.
Claude / Claude Code Review completed Jul 27, 2026 in 34m 24s

Code review found 1 potential issue

Found 1 candidates, confirmed 1. See review comments for details.

Details

Severity Count
🔴 Important 0
🟡 Nit 1
🟣 Pre-existing 0
Severity File:Line Issue
🟡 Nit src/io/PipeReader.rs:686-693 read_blocking_pipe with-buffer branch missing parent.is_done() guard

Annotations

Check warning on line 693 in src/io/PipeReader.rs

See this annotation in the file changed.

@claude claude / Claude Code Review

read_blocking_pipe with-buffer branch missing parent.is_done() guard

The `parent.is_done()` re-check after `on_read_chunk` was added to four of the five POSIX read-loop continuation sites (8a60853, eb220c52) but not to `read_blocking_pipe`'s with-buffer streaming branch (~line 750), which still has only `if !keep_going && !over_budget { return; }`. No runtime effect today — a streaming FileReader keeps `_buffer.capacity()==0` on this path so the branch is unreachable for it, and there's no `&& !received_hup` bypass here — but per REVIEW.md "fix the whole class in