From 175a704abfcb3400aaeb66d4f098d92ca7e30892 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 10 Mar 2020 00:37:48 +0100 Subject: bpo-39877: PyGILState_Ensure() don't call PyEval_InitThreads() (GH-18891) PyGILState_Ensure() doesn't call PyEval_InitThreads() anymore when a new Python thread state is created. The GIL is created by Py_Initialize() since Python 3.7, it's not needed to call PyEval_InitThreads() explicitly. Add an assertion to ensure that the GIL is already created. --- Python/ceval.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'Python/ceval.c') diff --git a/Python/ceval.c b/Python/ceval.c index 72a830468f..0ee740ace3 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -198,11 +198,17 @@ ensure_tstate_not_null(const char *func, PyThreadState *tstate) } +int +_PyEval_ThreadsInitialized(_PyRuntimeState *runtime) +{ + return gil_created(&runtime->ceval.gil); +} + int PyEval_ThreadsInitialized(void) { _PyRuntimeState *runtime = &_PyRuntime; - return gil_created(&runtime->ceval.gil); + return _PyEval_ThreadsInitialized(runtime); } PyStatus -- cgit v1.2.1