]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[mod_python3] Replace previously removed deprecated calls
authorMarc Olivier Chouinard <mochouinard@moctel.com>
Thu, 21 Oct 2021 00:16:39 +0000 (20:16 -0400)
committerGitHub <noreply@github.com>
Thu, 21 Oct 2021 00:16:39 +0000 (03:16 +0300)
src/mod/languages/mod_python3/mod_python3.c

index 6fd8f08f7689a7fcacea138c2a9780dba1ef7975..d0c7c20df5189499af13817f4d69055aba37737c 100644 (file)
@@ -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;
 
 }