Commit Graph

3 Commits

Author SHA1 Message Date
28a09f63b2 fix(smartexit): use native OS methods to kill process trees; remove tree-kill dependency 2026-03-04 17:55:47 +00:00
34b9aa4463 fix(core): track PIDs independently to survive removeProcess() race during shutdown
The direct child process may die from terminal SIGINT before ProcessLifecycle
runs shutdown, causing removeProcess() to clear it. Now killAll() uses a
persistent trackedPids Set that is never cleared by removeProcess(), ensuring
grandchild process trees are always killed.
2026-03-03 23:56:52 +00:00
862c67edbb BREAKING CHANGE(lifecycle): redesign SmartExit with ProcessLifecycle singleton
SmartExit constructor no longer installs signal handlers.
Applications must call ProcessLifecycle.install() explicitly.
Split into SmartExit (instance process tracking) and ProcessLifecycle (global signal coordination).
Remove @push.rocks/smartdelay dependency.
2026-03-03 23:40:05 +00:00