bpo-36710: Pass explicitly tstate in sysmodule.c (GH-14060)
* Replace global var Py_VerboseFlag with interp->config.verbose.
* Add _PyErr_NoMemory(tstate) function.
* Add tstate parameter to _PyEval_SetCoroutineOriginTrackingDepth()
and move the function to the internal API.
* Replace _PySys_InitMain(runtime, interp)
with _PySys_InitMain(runtime, tstate).
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 751c4d6..54e8ce2 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -899,6 +899,7 @@
}
/* Configure the main interpreter */
+ PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
PyConfig *config = &interp->config;
if (runtime->initialized) {
@@ -919,7 +920,7 @@
return _PyStatus_ERR("can't initialize time");
}
- if (_PySys_InitMain(runtime, interp) < 0) {
+ if (_PySys_InitMain(runtime, tstate) < 0) {
return _PyStatus_ERR("can't finish initializing sys");
}
@@ -1456,7 +1457,7 @@
}
Py_INCREF(interp->sysdict);
PyDict_SetItemString(interp->sysdict, "modules", modules);
- if (_PySys_InitMain(runtime, interp) < 0) {
+ if (_PySys_InitMain(runtime, tstate) < 0) {
return _PyStatus_ERR("can't finish initializing sys");
}
}