MCPcopy Create free account
hub / github.com/bloomberg/quantum / doEnqueue

Method doEnqueue

quantum/impl/quantum_io_queue_impl.h:217–237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

215}
216
217inline
218void IoQueue::doEnqueue(ITask::Ptr task)
219{
220 bool isEmpty = _queue.empty();
221 if (task->isHighPriority())
222 {
223 _stats.incHighPriorityCount();
224 _queue.emplace_front(std::static_pointer_cast<IoTask>(task));
225 }
226 else
227 {
228 _queue.emplace_back(std::static_pointer_cast<IoTask>(task));
229 }
230 _stats.incPostedCount();
231 _stats.incNumElements();
232 if (!_loadBalanceSharedIoQueues && isEmpty)
233 {
234 //signal on transition from 0 to 1 element only
235 signalEmptyCondition(false);
236 }
237}
238
239inline
240ITask::Ptr IoQueue::dequeue(std::atomic_bool& hint)

Callers

nothing calls this directly

Calls 5

incHighPriorityCountMethod · 0.80
incPostedCountMethod · 0.80
incNumElementsMethod · 0.80
emptyMethod · 0.45
isHighPriorityMethod · 0.45

Tested by

no test coverage detected