MEDIUM: tasks: Use __ha_barrier_store after modifying global_tasks_mask.
Now that we no longer use atomic operations to update global_tasks_mask,
as it's always modified while holding the TASK_RQ_LOCK, we have to use
__ha_barrier_store() instead of __ha_barrier_atomic_store() to ensure
any modification of global_tasks_mask is seen before modifying
active_tasks_mask.
This should be backported to 1.9.
diff --git a/src/task.c b/src/task.c
index b4f65e8..de6eda1 100644
--- a/src/task.c
+++ b/src/task.c
@@ -78,7 +78,7 @@
#ifdef USE_THREAD
if (root == &rqueue) {
global_tasks_mask |= t->thread_mask;
- __ha_barrier_atomic_store();
+ __ha_barrier_store();
}
#endif
_HA_ATOMIC_OR(&active_tasks_mask, t->thread_mask);