Cancel a task by name.
72{
74 bool expected = false;
75 if (op.active.compare_exchange_strong(expected, true,
76 std::memory_order_acquire, std::memory_order_relaxed)) {
77 op.entry = { nullptr, name };
78 op.is_addition = false;
80 return true;
81 }
82 }
83
85 bool expected = false;
86 if (op.active.compare_exchange_strong(expected, true,
87 std::memory_order_acquire, std::memory_order_relaxed)) {
88 op.entry = { nullptr, name };
89 op.is_addition = false;
91 return true;
92 }
93 }
94
96 "Pending task queue full, could not cancel task '{}'", name);
97
98 return false;
99}
#define MF_ERROR(comp, ctx,...)
std::atomic< uint32_t > m_pending_count
std::atomic< uint32_t > m_conditional_pending_count
PendingTaskOp m_pending_ops[MAX_PENDING_TASKS]
PendingTaskOp m_conditional_pending_ops[MAX_PENDING_CONDITIONAL]
@ CoroutineScheduling
Coroutine scheduling and temporal coordination (Vruta::TaskScheduler)
@ Vruta
Coroutines, schedulers, clocks, task management.