mirror of
https://github.com/python/cpython.git
synced 2025-08-23 10:16:01 +00:00
gh-131238: Convert pycore_pystate.h static inline to functions (#131352)
Convert static inline functions to functions: * _Py_IsMainThread() * _PyInterpreterState_Main() * _Py_IsMainInterpreterFinalizing() * _Py_GetMainConfig()
This commit is contained in:
parent
80e00ecc39
commit
0453e494b6
2 changed files with 43 additions and 33 deletions
|
@ -3137,3 +3137,41 @@ _PyThreadState_ClearMimallocHeaps(PyThreadState *tstate)
|
|||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_Py_IsMainThread(void)
|
||||
{
|
||||
unsigned long thread = PyThread_get_thread_ident();
|
||||
return (thread == _PyRuntime.main_thread);
|
||||
}
|
||||
|
||||
|
||||
PyInterpreterState *
|
||||
_PyInterpreterState_Main(void)
|
||||
{
|
||||
return _PyRuntime.interpreters.main;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_Py_IsMainInterpreterFinalizing(PyInterpreterState *interp)
|
||||
{
|
||||
/* bpo-39877: Access _PyRuntime directly rather than using
|
||||
tstate->interp->runtime to support calls from Python daemon threads.
|
||||
After Py_Finalize() has been called, tstate can be a dangling pointer:
|
||||
point to PyThreadState freed memory. */
|
||||
return (_PyRuntimeState_GetFinalizing(&_PyRuntime) != NULL &&
|
||||
interp == &_PyRuntime._main_interpreter);
|
||||
}
|
||||
|
||||
|
||||
const PyConfig *
|
||||
_Py_GetMainConfig(void)
|
||||
{
|
||||
PyInterpreterState *interp = _PyInterpreterState_Main();
|
||||
if (interp == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
return _PyInterpreterState_GetConfig(interp);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue