INLINE void ActivateOneOutputTask(TaskQueue& queue, int task, int* tasknum) { if (DEC_ATOMIC(&fTaskList[task]) == 0) { *tasknum = task; } else { *tasknum = queue.PopHead(); } }
INLINE void ActivateOutputTask(TaskQueue& queue, int task, int* tasknum) { if (DEC_ATOMIC(&fTaskList[task]) == 0) { if (*tasknum == WORK_STEALING_INDEX) { *tasknum = task; } else { queue.PushHead(task); } } }
bool JackActivationCount::Signal(JackSynchro* synchro, JackClientControl* control) { if (fValue == 0) { // Transfer activation to next clients jack_error("JackActivationCount::Signal value = 0 ref = %ld", control->fRefNum); return synchro->Signal(); } else if (DEC_ATOMIC(&fValue) == 1) { return synchro->Signal(); } else { return true; } }
void SignalOne() { DEC_ATOMIC(&fCurThreadCount); }
INLINE void ActivateOutputTask(TaskQueue& queue, int task) { if (DEC_ATOMIC(&fTaskList[task]) == 0) { queue.PushHead(task); } }