Commit: 6efd58dd3e2a6be696b00d68ad775d75def79b26
Author: Sergey Sharybin
Date: Fri Dec 22 16:37:25 2017 +0100
Branches: master
https://developer.blender.org/rB6efd58dd3e2a6be696b00d68ad775d75def79b26
Task scheduler: Clarify why do we need an atomic add of 0
===================================================================
M source/blender/blenlib/intern/task.c
===================================================================
diff --git a/source/blender/blenlib/intern/task.c
b/source/blender/blenlib/intern/task.c
index 311be1dd151..afa20e3d766 100644
--- a/source/blender/blenlib/intern/task.c
+++ b/source/blender/blenlib/intern/task.c
@@ -1124,6 +1124,9 @@ static void task_parallel_range_ex(
}
num_tasks = min_ii(num_tasks, (stop - start) / state.chunk_size);
+
+ /* NOTE: This way we are adding a memory barrier and ensure all worker
+ * threads can read and modify the value, without any locks. */
atomic_fetch_and_add_int32(&state.iter, 0);
if (use_userdata_chunk) {
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs