diff options
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ceval.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index d6a0b33595..40320bf357 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -169,8 +169,10 @@ PyEval_ThreadsInitialized(void) void PyEval_InitThreads(void) { - if (gil_created()) + if (gil_created()) { return; + } + PyThread_init_thread(); create_gil(); take_gil(_PyThreadState_GET()); @@ -184,10 +186,17 @@ PyEval_InitThreads(void) void _PyEval_FiniThreads(void) { - if (!gil_created()) + if (!gil_created()) { return; + } + destroy_gil(); assert(!gil_created()); + + if (_PyRuntime.ceval.pending.lock != NULL) { + PyThread_free_lock(_PyRuntime.ceval.pending.lock); + _PyRuntime.ceval.pending.lock = NULL; + } } void |