diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2021-09-09 15:27:00 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2021-09-09 15:27:33 +0300 |
commit | fc460351170478e712740ae1917a2e24803eba3b (patch) | |
tree | ab6e7e60760fa1f3b76ade2f85468246603e1c7b /source/blender/depsgraph/CMakeLists.txt | |
parent | da50cd86a745c9e63fc645bad6f0a5412afff920 (diff) |
Depsgraph: release GIL when evaluating the depsgraph
Evaluating the dependency graph potentially executes Python code when
evaluating drivers. In specific situations (see T91046) this could deadlock
Blender entirely. Temporarily releasing the GIL when evaluating the depsgraph
resolves this.
Calling the `BPy_BEGIN_ALLOW_THREADS` macro is relatively safe, as it's
a no-op when the current thread does not have the GIL.
Developed in collaboration with @sergey
Manifest task: T91046
Diffstat (limited to 'source/blender/depsgraph/CMakeLists.txt')
-rw-r--r-- | source/blender/depsgraph/CMakeLists.txt | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/depsgraph/CMakeLists.txt b/source/blender/depsgraph/CMakeLists.txt index 3ad26c6f4db..41253117096 100644 --- a/source/blender/depsgraph/CMakeLists.txt +++ b/source/blender/depsgraph/CMakeLists.txt @@ -161,6 +161,13 @@ set(LIB bf_blenkernel ) +if(WITH_PYTHON) + add_definitions(-DWITH_PYTHON) + list(APPEND INC + ../python + ) +endif() + blender_add_lib(bf_depsgraph "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") if(WITH_GTESTS) |