12 #include "RConfigure.h" 18 #include "tbb/task_group.h" 21 #include <type_traits> 34 namespace Experimental {
44 throw std::runtime_error(
"Implicit parallelism not enabled. Cannot instantiate a TTaskGroup.");
52 *
this = std::move(other);
58 other.fTaskContainer =
nullptr;
TTaskGroup & operator=(TTaskGroup &&other)
Namespace for new ROOT classes and functions.
void Wait()
Wait until all submitted items of work are completed.
std::atomic< bool > fCanRun
void function(const Char_t *name_, T fun, const Char_t *docstring=0)
A class to manage the asynchronous execution of work items.
void Run(const std::function< void(void)> &closure)
Add to the group an item of work which will be ran asynchronously.
void * TaskContainerPtr_t
Bool_t IsImplicitMTEnabled()
Returns true if the implicit multi-threading in ROOT is enabled.
void Cancel()
Cancel all submitted tasks immediately.
TaskContainerPtr_t fTaskContainer
Shield completely from implementation.