mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Prevent Unix PTY I/O from blocking runtime shutdown (#40460)
## Why Blocking PTY reads and output-channel sends can keep Tokio runtime shutdown waiting when a detached child retains the terminal or output backpressure fills the channel. ## What changed - Drive Unix PTY reads and writes through nonblocking `AsyncFd` readiness so their tasks can be cancelled during shutdown. - Keep draining child output after its receiver closes, and preserve queued input plus EOF delivery when portable PTY stdin closes. - Return a descriptive error when PTY spawning uses a Tokio runtime without an I/O driver. ## Testing Add Unix coverage for detached children, full and dropped output channels, large input with EOF, inherited file descriptors, and runtimes without I/O. GitOrigin-RevId: f7f1f58abebf8bf1d39285cd61b8d69946d54155
This commit is contained in:
1 parent
4aa52f2cb2
commit
bf3eb2ec91
5 files changed
+477
-65
No files matched your search
@@ -10,7 +10,7 @@ workspace = true
|
||||
[dependencies]
|
||||
anyhow = { workspace = true }
|
||||
portable-pty = { workspace = true }
|
||||
tokio = { workspace = true, features = ["io-util", "macros", "process", "rt-multi-thread", "sync", "time"] }
|
||||
tokio = { workspace = true, features = ["io-util", "macros", "net", "process", "rt-multi-thread", "sync", "time"] }
|
||||
|
||||
[dev-dependencies]
|
||||
pretty_assertions = { workspace = true }
|
||||
|
||||
Reference in new issue
Block a user