aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/import.c
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2022-11-14 15:56:16 -0700
committerGitHub <noreply@github.com>2022-11-14 15:56:16 -0700
commite874c2f1986ee01f53a9d9bdf26fa6979d8a6d35 (patch)
treeba3afc8d69a7701643bb59a9441e1766993c33a7 /Python/import.c
parent4e4b13e8f6211abbc0d53056da11357756daa314 (diff)
downloadcpython-e874c2f1986ee01f53a9d9bdf26fa6979d8a6d35.tar.gz
cpython-e874c2f1986ee01f53a9d9bdf26fa6979d8a6d35.zip
gh-81057: Move the Remaining Import State Globals to _PyRuntimeState (gh-99488)
https://github.com/python/cpython/issues/81057
Diffstat (limited to 'Python/import.c')
-rw-r--r--Python/import.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/Python/import.c b/Python/import.c
index daee16ec4dd..c12b3e07b5d 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -94,9 +94,9 @@ _PyImportZip_Init(PyThreadState *tstate)
in different threads to return with a partially loaded module.
These calls are serialized by the global interpreter lock. */
-static PyThread_type_lock import_lock = NULL;
-static unsigned long import_lock_thread = PYTHREAD_INVALID_THREAD_ID;
-static int import_lock_level = 0;
+#define import_lock _PyRuntime.imports.lock.mutex
+#define import_lock_thread _PyRuntime.imports.lock.thread
+#define import_lock_level _PyRuntime.imports.lock.level
void
_PyImport_AcquireLock(void)
@@ -1759,8 +1759,8 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name)
PyObject *mod = NULL;
PyInterpreterState *interp = tstate->interp;
int import_time = _PyInterpreterState_GetConfig(interp)->import_time;
- static int import_level;
- static _PyTime_t accumulated;
+#define import_level _PyRuntime.imports.find_and_load.import_level
+#define accumulated _PyRuntime.imports.find_and_load.accumulated
_PyTime_t t1 = 0, accumulated_copy = accumulated;
@@ -1781,12 +1781,13 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name)
* _PyDict_GetItemIdWithError().
*/
if (import_time) {
- static int header = 1;
+#define header _PyRuntime.imports.find_and_load.header
if (header) {
fputs("import time: self [us] | cumulative | imported package\n",
stderr);
header = 0;
}
+#undef header
import_level++;
t1 = _PyTime_GetPerfCounter();
@@ -1816,6 +1817,8 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name)
}
return mod;
+#undef import_level
+#undef accumulated
}
PyObject *