bpo-34301: Add _PyInterpreterState_Get() helper function (GH-8592)
sys_setcheckinterval() now uses a local variable to parse arguments,
before writing into interp->check_interval.
diff --git a/Modules/_xxsubinterpretersmodule.c b/Modules/_xxsubinterpretersmodule.c
index 8567e4f..6162c53 100644
--- a/Modules/_xxsubinterpretersmodule.c
+++ b/Modules/_xxsubinterpretersmodule.c
@@ -26,10 +26,9 @@
static PyInterpreterState *
_get_current(void)
{
- PyThreadState *tstate = PyThreadState_Get();
- // PyThreadState_Get() aborts if lookup fails, so we don't need
+ // _PyInterpreterState_Get() aborts if lookup fails, so don't need
// to check the result for NULL.
- return tstate->interp;
+ return _PyInterpreterState_Get();
}
static int64_t
@@ -1941,7 +1940,7 @@
// Switch to interpreter.
PyThreadState *save_tstate = NULL;
- if (interp != PyThreadState_Get()->interp) {
+ if (interp != _PyInterpreterState_Get()) {
// XXX Using the "head" thread isn't strictly correct.
PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
// XXX Possible GILState issues?