Go to the documentation of this file. 1 #ifndef FWCore_Concurrency_SerialTaskQueue_h
2 #define FWCore_Concurrency_SerialTaskQueue_h
59 #include "tbb/task_group.h"
60 #include "tbb/concurrent_queue.h"
118 template <
typename T>
119 void push(tbb::task_group&,
const T& iAction);
139 template <
typename T>
172 template <
typename T>
tbb::task_group * group()
tbb::task_group * m_group
bool resume()
Resumes processing if the queue was paused.
void push(tbb::task_group &, const T &iAction)
asynchronously pushes functor iAction into queue
TaskBase * pushAndGetNextTask(TaskBase *)
TaskBase * finishedTask()
virtual ~TaskBase()=default
TaskBase * pickNextTask()
std::atomic< unsigned long > m_pauseCount
TaskBase(tbb::task_group *iGroup)
bool pause()
Pauses processing of additional tasks from the queue.
tbb::concurrent_queue< TaskBase * > m_tasks
def template(fileName, svg, replaceme="REPLACEME")
std::atomic< bool > m_taskChosen
SerialTaskQueue(SerialTaskQueue &&iOther)
const SerialTaskQueue & operator=(const SerialTaskQueue &)=delete
QueuedTask(tbb::task_group &iGroup, const T &iAction)
void pushTask(TaskBase *)
bool isPaused() const
Checks to see if the queue has been paused.