From 578024ed861226eee58706a393a891e1bb41afec Mon Sep 17 00:00:00 2001 From: Marc Olivier Chouinard Date: Wed, 20 Oct 2021 20:16:39 -0400 Subject: [PATCH] [mod_python3] Replace previously removed deprecated calls --- src/mod/languages/mod_python3/mod_python3.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mod/languages/mod_python3/mod_python3.c b/src/mod/languages/mod_python3/mod_python3.c index 6fd8f08f76..d0c7c20df5 100644 --- a/src/mod/languages/mod_python3/mod_python3.c +++ b/src/mod/languages/mod_python3/mod_python3.c @@ -574,7 +574,9 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_python3_load) // swap out threadstate since the call threads will create // their own and swap in their threadstate - PyThreadState_Swap(NULL); + // and release the global interpreter lock + PyEval_SaveThread(); + } switch_mutex_init(&THREAD_POOL_LOCK, SWITCH_MUTEX_NESTED, pool); @@ -619,6 +621,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_python3_shutdown) pt = nextpt; } PyThreadState_Swap(mainThreadState); + PyEval_ReleaseThread(mainThreadState); switch_yield(1000000); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Had to kill %d threads\n", thread_cnt); @@ -644,9 +647,13 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_python3_shutdown) mainInterpreterState = mainThreadState->interp; myThreadState = PyThreadState_New(mainInterpreterState); PyThreadState_Swap(myThreadState); + PyEval_ReleaseThread(myThreadState); Py_Finalize(); + // Release the global interpreter lock + PyEval_SaveThread(); + return SWITCH_STATUS_UNLOAD; }