Skip to content

Move shell execution off tokio async threads to blocking thread pool#70

Open
tcdent wants to merge 1 commit intomainfrom
claude/shell-command-execution-A3nWJ
Open

Move shell execution off tokio async threads to blocking thread pool#70
tcdent wants to merge 1 commit intomainfrom
claude/shell-command-execution-A3nWJ

Conversation

@tcdent
Copy link
Owner

@tcdent tcdent commented Feb 8, 2026

Shell commands now use std::process::Command + spawn_blocking instead of
tokio::process::Command, keeping shell I/O entirely off async worker threads.

Also fixes a latent pipe deadlock: the old code read stdout then stderr
sequentially, which could deadlock if the child filled stderr's pipe buffer.
Now uses wait_with_output() which reads both streams in parallel.

https://claude.ai/code/session_01EfWPKurCSP4NaVGpAaFQYv

Shell commands now use std::process::Command + spawn_blocking instead of
tokio::process::Command, keeping shell I/O entirely off async worker threads.

Also fixes a latent pipe deadlock: the old code read stdout then stderr
sequentially, which could deadlock if the child filled stderr's pipe buffer.
Now uses wait_with_output() which reads both streams in parallel.

https://claude.ai/code/session_01EfWPKurCSP4NaVGpAaFQYv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants