summaryrefslogtreecommitdiff
path: root/Python/pystate.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2021-02-19 15:10:45 +0100
committerGitHub <noreply@github.com>2021-02-19 15:10:45 +0100
commitbcb094b41f7fe4dd1686c50891d85632fcf0d481 (patch)
tree72ae3916ace264f291a89f288ff199a36ead54f4 /Python/pystate.c
parenta486054b24658fa623e030ddd4cc0cbfcac54ab0 (diff)
downloadcpython-git-bcb094b41f7fe4dd1686c50891d85632fcf0d481.tar.gz
bpo-43268: Pass interp rather than tstate to internal functions (GH-24580)
Pass the current interpreter (interp) rather than the current Python thread state (tstate) to internal functions which only use the interpreter. Modified functions: * _PyXXX_Fini() and _PyXXX_ClearFreeList() functions * _PyEval_SignalAsyncExc(), make_pending_calls() * _PySys_GetObject(), sys_set_object(), sys_set_object_id(), sys_set_object_str() * should_audit(), set_flags_from_config(), make_flags() * _PyAtExit_Call() * init_stdio_encoding() * etc.
Diffstat (limited to 'Python/pystate.c')
-rw-r--r--Python/pystate.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Python/pystate.c b/Python/pystate.c
index f4fd039821..1623babeff 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -324,7 +324,7 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
/* Last garbage collection on this interpreter */
_PyGC_CollectNoFail(tstate);
- _PyGC_Fini(tstate);
+ _PyGC_Fini(interp);
/* We don't clear sysdict and builtins until the end of this function.
Because clearing other attributes can execute arbitrary Python code
@@ -1146,7 +1146,7 @@ PyThreadState_SetAsyncExc(unsigned long id, PyObject *exc)
HEAD_UNLOCK(runtime);
Py_XDECREF(old_exc);
- _PyEval_SignalAsyncExc(tstate);
+ _PyEval_SignalAsyncExc(tstate->interp);
return 1;
}
HEAD_UNLOCK(runtime);
@@ -1357,9 +1357,9 @@ _PyGILState_GetInterpreterStateUnsafe(void)
}
void
-_PyGILState_Fini(PyThreadState *tstate)
+_PyGILState_Fini(PyInterpreterState *interp)
{
- struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
+ struct _gilstate_runtime_state *gilstate = &interp->runtime->gilstate;
PyThread_tss_delete(&gilstate->autoTSSkey);
gilstate->autoInterpreterState = NULL;
}