[Bf-blender-cvs] [cf38b93] master: Fix T42005: Reset py-handlers could crash
Campbell Barton
noreply at git.blender.org
Mon Oct 13 17:45:58 CEST 2014
Commit: cf38b933f3408b7f45d0e0e378d8aefb23bd4f6c
Author: Campbell Barton
Date: Mon Oct 13 17:44:27 2014 +0200
Branches: master
https://developer.blender.org/rBcf38b933f3408b7f45d0e0e378d8aefb23bd4f6c
Fix T42005: Reset py-handlers could crash
Wasn't acquiring the GIL.
===================================================================
M source/blender/python/intern/bpy_app_handlers.c
===================================================================
diff --git a/source/blender/python/intern/bpy_app_handlers.c b/source/blender/python/intern/bpy_app_handlers.c
index 41ca2d4..44da322 100644
--- a/source/blender/python/intern/bpy_app_handlers.c
+++ b/source/blender/python/intern/bpy_app_handlers.c
@@ -240,8 +240,11 @@ PyObject *BPY_app_handlers_struct(void)
void BPY_app_handlers_reset(const short do_all)
{
+ PyGILState_STATE gilstate;
int pos = 0;
+ gilstate = PyGILState_Ensure();
+
if (do_all) {
for (pos = 0; pos < BLI_CB_EVT_TOT; pos++) {
/* clear list */
@@ -279,6 +282,8 @@ void BPY_app_handlers_reset(const short do_all)
Py_DECREF(perm_id_str);
}
+
+ PyGILState_Release(gilstate);
}
/* the actual callback - not necessarily called from py */
More information about the Bf-blender-cvs
mailing list