Don't attach finalizers to Handles in CommunicationHandle API #322
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.
We are now careful to not attach any finalizers to Handles when creating pipes for inter-process communication on Unix systems. Instead, the handles are closed manually.
The finalizers were causing problems in situations such as the following:
This PR does not include a test, as the above bug is a bit difficult to trigger. My reproducer for this bug was a test in the
cabal-install
testsuite; I can confirm that the bug no longer occurs with this patch.This PR bumps the process version to
1.6.21.0
. After releasing it on Hackage, I would also recommend deprecating1.6.20.0
.