summaryrefslogtreecommitdiff
path: root/src/ninep
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-10-01 08:49:50 -0300
committerGabriel Schneider <[email protected]>2026-10-01 08:53:11 -0300
commitde78a167532d1f78611381accd8839fac066fd56 (patch)
tree561b2af0a0fec2bdf6cb4ab618bcfbc5309b1476 /src/ninep
parent94f6090603e9c9f611a01335bd4eca480b00db76 (diff)
downloadpardes-de78a167532d1f78611381accd8839fac066fd56.tar.gz
pardes-de78a167532d1f78611381accd8839fac066fd56.zip
A language server goes with its children when reaped, and every server's process group is killed as pardes exits: no zls or `zig build --build-runner` outlives the editor
The server is spawned with setsid, its own group's leader, but reap() signalled only its pid, and nothing reaped the servers at exit: the socket closing was left to tell them. zls busy in its build runner at a cold start did not notice, and lived on with its `zig build` for as long as no one killed it (found as three orphans 40 minutes after their sessions had gone). reap() now signals the group, and an atexit hook, registered at the first spawn, kills every server's group. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/ninep')
0 files changed, 0 insertions, 0 deletions