_HA_ATOMIC_ADD(&tasks_run_queue, 1);
#ifdef USE_THREAD
if (root == &rqueue) {
- _HA_ATOMIC_OR(&global_tasks_mask, t->thread_mask);
+ global_tasks_mask |= t->thread_mask;
__ha_barrier_atomic_store();
}
#endif
if (unlikely(!grq)) {
grq = eb32sc_first(&rqueue, tid_bit);
if (!grq) {
+ global_tasks_mask &= ~tid_bit;
HA_SPIN_UNLOCK(TASK_RQ_LOCK, &rq_lock);
- _HA_ATOMIC_AND(&global_tasks_mask, ~tid_bit);
}
}
#endif
if (unlikely(!grq)) {
grq = eb32sc_first(&rqueue, tid_bit);
if (!grq) {
+ global_tasks_mask &= ~tid_bit;
HA_SPIN_UNLOCK(TASK_RQ_LOCK, &rq_lock);
- _HA_ATOMIC_AND(&global_tasks_mask, ~tid_bit);
}
}
}