Blender Git Loki
Git Commits -> Revision ed1fc9d
Revision ed1fc9d by Jacques Lucke (master) June 8, 2021, 08:39 (GMT) |
BLI: support disabling task isolation in task pool Under some circumstances using task isolation can cause deadlocks. Previously, our task pool implementation would run all tasks in an isolated region. Now using task isolation is optional and can be turned on/off for individual task pools. Task pools that spawn new tasks recursively should never enable task isolation. There is a new check that finds these cases at runtime. Right now this check is disabled, so that this commit is a pure refactor. It will be enabled in an upcoming commit. This fixes T88598. Differential Revision: https://developer.blender.org/D11415 |
Commit Details:
Full Hash: ed1fc9d96bbac2ac3d4282400a9717e19e84211d
Parent Commit: 496045f
Lines Changed: +132, -44
21 Modified Paths:
/source/blender/blenkernel/intern/editmesh_tangent.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/lib_override.c (+2, -1) (Diff)
/source/blender/blenkernel/intern/mesh_evaluate.c (+2, -1) (Diff)
/source/blender/blenkernel/intern/mesh_tangent.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/ocean.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/particle.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/particle_distribute.c (+1, -1) (Diff)
/source/blender/blenlib/BLI_task.h (+43, -3) (Diff)
/source/blender/blenlib/intern/task_iterator.c (+2, -2) (Diff)
/source/blender/blenlib/intern/task_pool.cc (+62, -19) (Diff)
/source/blender/blenlib/tests/BLI_linklist_lockfree_test.cc (+1, -1) (Diff)
/source/blender/compositor/intern/COM_WorkScheduler.cc (+2, -1) (Diff)
/source/blender/depsgraph/intern/eval/deg_eval.cc (+2, -1) (Diff)
/source/blender/editors/mesh/editmesh_undo.c (+1, -1) (Diff)
/source/blender/editors/render/render_opengl.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/paint_image_proj.c (+1, -1) (Diff)
/source/blender/editors/space_clip/clip_editor.c (+1, -1) (Diff)
/source/blender/editors/space_clip/clip_ops.c (+1, -1) (Diff)
/source/blender/editors/space_file/filelist.c (+2, -1) (Diff)
/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c (+2, -2) (Diff)
/source/blender/imbuf/intern/imageprocess.c (+2, -2) (Diff)
/source/blender/blenkernel/intern/lib_override.c (+2, -1) (Diff)
/source/blender/blenkernel/intern/mesh_evaluate.c (+2, -1) (Diff)
/source/blender/blenkernel/intern/mesh_tangent.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/ocean.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/particle.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/particle_distribute.c (+1, -1) (Diff)
/source/blender/blenlib/BLI_task.h (+43, -3) (Diff)
/source/blender/blenlib/intern/task_iterator.c (+2, -2) (Diff)
/source/blender/blenlib/intern/task_pool.cc (+62, -19) (Diff)
/source/blender/blenlib/tests/BLI_linklist_lockfree_test.cc (+1, -1) (Diff)
/source/blender/compositor/intern/COM_WorkScheduler.cc (+2, -1) (Diff)
/source/blender/depsgraph/intern/eval/deg_eval.cc (+2, -1) (Diff)
/source/blender/editors/mesh/editmesh_undo.c (+1, -1) (Diff)
/source/blender/editors/render/render_opengl.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/paint_image_proj.c (+1, -1) (Diff)
/source/blender/editors/space_clip/clip_editor.c (+1, -1) (Diff)
/source/blender/editors/space_clip/clip_ops.c (+1, -1) (Diff)
/source/blender/editors/space_file/filelist.c (+2, -1) (Diff)
/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c (+2, -2) (Diff)
/source/blender/imbuf/intern/imageprocess.c (+2, -2) (Diff)