Spawn children in their own process groups, and deliver SIGINT to each group #177
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change fixes the issue described in #176 by:
nf
spawn each child process in its own distinct process group via thedetached
optionSIGINT
signals to children to the entire process group, rather than just the direct childnf
can handle the delivery of multiple consecutiveSIGINT
signals to itself without exiting prematurelyChanges 1 & 2 are inspired by the approach taken by goreman (a similar tool implemented in Go). Change 3 is somewhat unrelated, but was added in order to deal with the problem described in pnpm/pnpm#7374 (sometimes, a parent process of
nf
might itself forward aSIGINT
tonf
, and the terminal might also deliver that signal).