diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-28 16:29:29 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:15 -0300 |
| commit | f30ee05b0609b8f3aa488c94f3ff21733ed37053 (patch) | |
| tree | 2129d76e4c33861ca362d22b5fb9ab02ad6f32c1 /src/builtins.zig | |
| parent | 2a842d241c462c11959102f96a3945aec493cb86 (diff) | |
| download | pardes-f30ee05b0609b8f3aa488c94f3ff21733ed37053.tar.gz pardes-f30ee05b0609b8f3aa488c94f3ff21733ed37053.zip | |
A command's exit is told once its output is in, by the pty's state, not a timer
The watcher woke the host a second time 60 ms after the exit by its own clock
while the grace was counted from the reap: a host busy for 10 ms missed it,
and the tag said running for ever and Kill did nothing; and under load exit 0
could land before the last output. As decided, no timer: the exit is told
once it is reaped and the pty says nothing is left (poll: no POLLIN, and no
POLLHUP, which means the end of file is on its way behind the output), else
at that end of file, checked after each chunk of output. The tty host checks
inside its step so the frame shows it. The four hosts' copies are one
host_io.takeExits/commandEof, which close a told command's pty at its end of
file (the fd and the GUI's reader leaked when the exit came first). A
finished command pane whose pty a job it left still holds is not reused, so
that job is not hung up; and the reset before a reuse is SGR 0, not DECSTR,
which ghostty's stream does not implement.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/builtins.zig')
0 files changed, 0 insertions, 0 deletions
