mirror of
https://github.com/python/cpython.git
synced 2025-07-12 05:45:15 +00:00
gh-81057: Move More Globals in Core Code to _PyRuntimeState (gh-99516)
https://github.com/python/cpython/issues/81057
This commit is contained in:
parent
5cfb7d19f5
commit
5f55067e23
24 changed files with 241 additions and 130 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue