mirror of https://github.com/python/cpython
Statically initialize _PyRuntimeState fields. (gh-30588)
https://bugs.python.org/issue45953
This commit is contained in:
parent
bc02eac9d2
commit
b8ddf7e794
|
@ -17,6 +17,17 @@ extern "C" {
|
||||||
|
|
||||||
#define _PyRuntimeState_INIT \
|
#define _PyRuntimeState_INIT \
|
||||||
{ \
|
{ \
|
||||||
|
.gilstate = { \
|
||||||
|
.check_enabled = 1, \
|
||||||
|
/* A TSS key must be initialized with Py_tss_NEEDS_INIT \
|
||||||
|
in accordance with the specification. */ \
|
||||||
|
.autoTSSkey = Py_tss_NEEDS_INIT, \
|
||||||
|
}, \
|
||||||
|
.interpreters = { \
|
||||||
|
/* This prevents interpreters from getting created \
|
||||||
|
until _PyInterpreterState_Enable() is called. */ \
|
||||||
|
.next_id = -1, \
|
||||||
|
}, \
|
||||||
.global_objects = _Py_global_objects_INIT, \
|
.global_objects = _Py_global_objects_INIT, \
|
||||||
._main_interpreter = _PyInterpreterState_INIT, \
|
._main_interpreter = _PyInterpreterState_INIT, \
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,17 +111,7 @@ init_runtime(_PyRuntimeState *runtime,
|
||||||
|
|
||||||
PyPreConfig_InitPythonConfig(&runtime->preconfig);
|
PyPreConfig_InitPythonConfig(&runtime->preconfig);
|
||||||
|
|
||||||
runtime->gilstate.check_enabled = 1;
|
|
||||||
|
|
||||||
/* A TSS key must be initialized with Py_tss_NEEDS_INIT
|
|
||||||
in accordance with the specification. */
|
|
||||||
Py_tss_t initial = Py_tss_NEEDS_INIT;
|
|
||||||
runtime->gilstate.autoTSSkey = initial;
|
|
||||||
|
|
||||||
runtime->interpreters.mutex = interpreters_mutex;
|
runtime->interpreters.mutex = interpreters_mutex;
|
||||||
// This prevents interpreters from getting created
|
|
||||||
// until _PyInterpreterState_Enable() is called.
|
|
||||||
runtime->interpreters.next_id = -1;
|
|
||||||
|
|
||||||
runtime->xidregistry.mutex = xidregistry_mutex;
|
runtime->xidregistry.mutex = xidregistry_mutex;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue