mirror of
https://github.com/python/cpython.git
synced 2025-08-30 21:48:47 +00:00
bpo-39877: _PyRuntimeState.finalizing becomes atomic (GH-18816)
Convert _PyRuntimeState.finalizing field to an atomic variable: * Rename it to _finalizing * Change its type to _Py_atomic_address * Add _PyRuntimeState_GetFinalizing() and _PyRuntimeState_SetFinalizing() functions * Remove _Py_CURRENTLY_FINALIZING() function: replace it with testing directly _PyRuntimeState_GetFinalizing() value Convert _PyRuntimeState_GetThreadState() to static inline function.
This commit is contained in:
parent
557287075c
commit
7b3c252dc7
5 changed files with 29 additions and 15 deletions
|
@ -292,7 +292,7 @@ PyInterpreterState_Clear(PyInterpreterState *interp)
|
|||
Py_CLEAR(interp->after_forkers_parent);
|
||||
Py_CLEAR(interp->after_forkers_child);
|
||||
#endif
|
||||
if (runtime->finalizing == NULL) {
|
||||
if (_PyRuntimeState_GetFinalizing(runtime) == NULL) {
|
||||
_PyWarnings_Fini(interp);
|
||||
}
|
||||
// XXX Once we have one allocator per interpreter (i.e.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue