#include <SerialTaskQueueChain.h>
|
template<typename T > |
void | actionToRun (T &&iAction) |
|
template<typename T > |
void | passDownChain (unsigned int iIndex, tbb::task_group &iGroup, T &&iAction) |
|
Definition at line 32 of file SerialTaskQueueChain.h.
◆ SerialTaskQueueChain() [1/4]
edm::SerialTaskQueueChain::SerialTaskQueueChain |
( |
| ) |
|
|
inline |
◆ SerialTaskQueueChain() [2/4]
edm::SerialTaskQueueChain::SerialTaskQueueChain |
( |
std::vector< std::shared_ptr< SerialTaskQueue >> |
iQueues | ) |
|
|
inlineexplicit |
◆ SerialTaskQueueChain() [3/4]
◆ SerialTaskQueueChain() [4/4]
◆ actionToRun()
template<typename T >
void SerialTaskQueueChain::actionToRun |
( |
T && |
iAction | ) |
|
|
private |
◆ numberOfQueues()
std::size_t edm::SerialTaskQueueChain::numberOfQueues |
( |
| ) |
const |
|
inline |
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ outstandingTasks()
unsigned long edm::SerialTaskQueueChain::outstandingTasks |
( |
| ) |
const |
|
inline |
◆ passDownChain()
template<typename T >
void SerialTaskQueueChain::passDownChain |
( |
unsigned int |
iIndex, |
|
|
tbb::task_group & |
iGroup, |
|
|
T && |
iAction |
|
) |
| |
|
private |
◆ push()
template<typename T >
void SerialTaskQueueChain::push |
( |
tbb::task_group & |
iGroup, |
|
|
T && |
iAction |
|
) |
| |
asynchronously pushes functor iAction into queue
The function will return immediately and iAction will either process concurrently with the calling thread or wait until the protected resource becomes available or until a CPU becomes available.
- Parameters
-
[in] | iAction | Must be a functor that takes no arguments and return no values. |
Definition at line 75 of file SerialTaskQueueChain.h.
81 m_queues[0]->push(iGroup, [
this, &iGroup, iAction]()
mutable { this->
passDownChain(1, iGroup, iAction); });
References actionToRun(), cms::cuda::assert(), m_outstandingTasks, m_queues, and passDownChain().
Referenced by edm::EventProcessor::beginLumiAsync(), edm::EventProcessor::handleNextEventForStreamAsync(), and edm::Worker::TaskQueueAdaptor::push().
◆ m_outstandingTasks
std::atomic<unsigned long> edm::SerialTaskQueueChain::m_outstandingTasks {0} |
|
private |
◆ m_queues
std::vector<std::shared_ptr<SerialTaskQueue> > edm::SerialTaskQueueChain::m_queues |
|
private |