Statically initialize _PyRuntimeState fields. (gh-30588)

https://bugs.python.org/issue45953
This commit is contained in:
Eric Snow 2022-01-13 16:33:40 -07:00 committed by GitHub
parent bc02eac9d2
commit b8ddf7e794
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 10 deletions

View file

@ -17,6 +17,17 @@ extern "C" {
#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, \
._main_interpreter = _PyInterpreterState_INIT, \
}

View file

@ -111,17 +111,7 @@ init_runtime(_PyRuntimeState *runtime,
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;
// This prevents interpreters from getting created
// until _PyInterpreterState_Enable() is called.
runtime->interpreters.next_id = -1;
runtime->xidregistry.mutex = xidregistry_mutex;