Ignore SIGINT sent to an interactive repl server #1570
Merged
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.
Unfortunately, even though
*pump-in*
is false, the server subprocess still gets the SIGINT when you hit<ctrl-c>
. REPLy used to take care of that by registering a handler itself, but it's a ClassLoader leak, asdiscussed in trptcolin/reply#127, so I removed it. But now subprocess servers crash instead of gracefully being interrupted.
Here we're careful only to register the process in the specific case where we're responsible for both the input and the server.
Pro: REPLy clients avoid classloader leaks.
Con: All REPLy clients have to implement this same sort of handling, but only (?) if they're running in a subprocess.