Skip to content

Commit 45e1742

Browse files
authored
exec-server: wait for close after observed exit (openai#19130)
## Why Windows CI can flake in `server::handler::tests::output_and_exit_are_retained_after_notification_receiver_closes` after a process has exited but before both output streams have closed. `exec/read` returned immediately whenever `exited` was true, so callers that had already observed the exit event could spin instead of long-polling for the later `closed` state. ## What Changed - Keep returning immediately when a terminal exit event is newly observable. - Allow later reads, after the caller has advanced past that event, to wait for `closed` or new output until `wait_ms` expires. ## Verification - CI pending.
1 parent d3b0449 commit 45e1742

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

codex-rs/exec-server/src/local_process.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,8 +323,11 @@ impl LocalProcess {
323323
)
324324
};
325325

326+
let has_new_terminal_event =
327+
response.exited && after_seq < response.next_seq.saturating_sub(1);
326328
if !response.chunks.is_empty()
327-
|| response.exited
329+
|| response.closed
330+
|| has_new_terminal_event
328331
|| tokio::time::Instant::now() >= deadline
329332
{
330333
let _total_bytes: usize = response

0 commit comments

Comments
 (0)