gh-81057: Move More Globals in Core Code to _PyRuntimeState (gh-99516)
https://github.com/python/cpython/issues/81057
This commit is contained in:
@@ -1856,7 +1856,7 @@ _PyUnicode_FromId(_Py_Identifier *id)
|
||||
|
||||
Py_ssize_t index = _Py_atomic_size_get(&id->index);
|
||||
if (index < 0) {
|
||||
struct _Py_unicode_runtime_ids *rt_ids = &interp->runtime->unicode_ids;
|
||||
struct _Py_unicode_runtime_ids *rt_ids = &interp->runtime->unicode_state.ids;
|
||||
|
||||
PyThread_acquire_lock(rt_ids->lock, WAIT_LOCK);
|
||||
// Check again to detect concurrent access. Another thread can have
|
||||
@@ -14491,12 +14491,14 @@ PyTypeObject PyUnicode_Type = {
|
||||
|
||||
/* Initialize the Unicode implementation */
|
||||
|
||||
void
|
||||
_PyUnicode_InitState(PyInterpreterState *interp)
|
||||
static void
|
||||
_init_global_state(void)
|
||||
{
|
||||
if (!_Py_IsMainInterpreter(interp)) {
|
||||
static int initialized = 0;
|
||||
if (initialized) {
|
||||
return;
|
||||
}
|
||||
initialized = 1;
|
||||
|
||||
/* initialize the linebreak bloom filter */
|
||||
const Py_UCS2 linebreak[] = {
|
||||
@@ -14514,6 +14516,15 @@ _PyUnicode_InitState(PyInterpreterState *interp)
|
||||
Py_ARRAY_LENGTH(linebreak));
|
||||
}
|
||||
|
||||
void
|
||||
_PyUnicode_InitState(PyInterpreterState *interp)
|
||||
{
|
||||
if (!_Py_IsMainInterpreter(interp)) {
|
||||
return;
|
||||
}
|
||||
_init_global_state();
|
||||
}
|
||||
|
||||
|
||||
PyStatus
|
||||
_PyUnicode_InitGlobalObjects(PyInterpreterState *interp)
|
||||
|
||||
Reference in New Issue
Block a user