putil: grab GIL while decreffing function

This commit is contained in:
rdb 2025-07-28 10:01:11 +02:00
parent 20c9b0d902
commit de4865b324
1 changed files with 11 additions and 0 deletions

View File

@ -60,7 +60,18 @@ PythonCallbackObject(PyObject *function) {
*/
PythonCallbackObject::
~PythonCallbackObject() {
// This may be called from the cull or draw thread, so we have to be sure we
// own the GIL.
#if defined(HAVE_THREADS) && !defined(SIMPLE_THREADS)
PyGILState_STATE gstate;
gstate = PyGILState_Ensure();
#endif
Py_DECREF(_function);
#if defined(HAVE_THREADS) && !defined(SIMPLE_THREADS)
PyGILState_Release(gstate);
#endif
}
/**