diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-28 22:25:46 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:15 -0300 |
| commit | 4073d1576876107e0750a51682a64319cf0c08c2 (patch) | |
| tree | b036d5393d862b988e9b88b3bee2f321100d4408 /src/detached/server.zig | |
| parent | 33f62509fc515c767cbef8d329d7666697e54ae7 (diff) | |
| download | pardes-4073d1576876107e0750a51682a64319cf0c08c2.tar.gz pardes-4073d1576876107e0750a51682a64319cf0c08c2.zip | |
Kill stops a command pane's whole line again, now it runs with job control
With the line run under job control (the change before), the job running
has a group of its own, and Kill's SIGTERM to the tty's foreground group
stopped only that job: of `sleep 30; touch x` the touch still ran. For a
command pane the hosts now signal the shell's group as well, so the whole
line stops, as it did; a line typed at a prompt still loses only its
foreground job. The test forks a real pty for both halves: a background job
outliving its command and the pty's hangup, and a killed line not running on.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/detached/server.zig')
| -rw-r--r-- | src/detached/server.zig | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/detached/server.zig b/src/detached/server.zig index 2fc165eb..857591d4 100644 --- a/src/detached/server.zig +++ b/src/detached/server.zig @@ -533,7 +533,7 @@ pub const Session = struct { const pt = s.ptys[pane]; // A command whose exit is recorded is reaped: its group may be another's. if (pt.fd < 0 or pt.cmd.exited) return; - host_io.signalTty(pt.pid, pt.fd, sig); + host_io.signalTty(pt.pid, pt.fd, sig, pt.cmd.watched); } fn ttyTaken(ctx: ?*anyopaque, pane: u8) bool { |
