The C API needs to protect state that can be deleted by finalization #134307
Labels
3.13
bugs and security fixes
3.14
bugs and security fixes
3.15
new features, bugs and security fixes
topic-C-API
topic-free-threading
topic-subinterpreters
triaged
The issue has been accepted as valid by a triager.
Uh oh!
There was an error while loading. Please reload this page.
In the C API, we have some functions that need to access state that is deleted by finalization. For example,
PyGILState_Ensure
accesses the gilstate, and that can be concurrently deallocated. In that specific case, I proposed #132510 as a fix, but really, we should have a better way to protect state against a finalizing interpreter. I'm not sure whether to categorize this as a bug or a feature.I think the best way to do this is through a finalizing counter similar to how PEP-788 proposes preventing interpreter shutdown. So, for functions that don't require an attached thread state, we need something like:
Does this approach seem reasonable to everyone?
cc @ericsnowcurrently
The text was updated successfully, but these errors were encountered: