Detect exit immediately if last process pipe is closed #58
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 PR introduces a simple check to see if the program is already known to be closed when the last process pipe is closed. This simple change improves "exit" detection significantly for most programs and does not cause a noticeable penalty for more advanced use cases.
Most programs do not explicitly close their STDIO handles and these will be closed implicitly when the program exits. Accordingly, we will now detect the "exit" event immediately without having to start a timer.
More advanced programs may close their STDIO handles explicitly while the program is still running. We continue to use a perodic timer to check the program state in this case.
Supersedes / closes #15, thanks @nicolas-grekas!