ArrayQueue is used each time a task is scheduled:
- When scheduling locally,
ArrayQueue::pop is called repeatedly to piggyback remote schedules
- When scheduling remotely,
ArrayQueue::push is called
And ArrayQueue::pop is EXPENSIVE, really expensive: multiple atomic load and a SeqCst atomic fence when empty.
ArrayQueueis used each time a task is scheduled:ArrayQueue::popis called repeatedly to piggyback remote schedulesArrayQueue::pushis calledAnd
ArrayQueue::popis EXPENSIVE, really expensive: multiple atomic load and a SeqCst atomic fence when empty.