Avoid taking back GIL when the Python runtime is finalizing #1551
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.
Description
When using
gil_scoped_release, care must be taken not to take the GIL when the Python runtime is finalizing.According to this one can call
_Py_IsFinalizing()to check the failure condition and thendisarm()thegil_scoped_releaseobject so it does not take the GIL back.This would fix (in theroy) #1484 but locally it doesn't seem so. Opening in draft nonetheless, in case someone wants to take this as a base for a proper fix.
Is this user-facing behavior change?
Did you use Generative AI?
Additional Information