Wrapper for tbb::task_arena.
Wrapper over tbb::task_arena.
Necessary in order to keep tbb away from ROOT headers. This class is thought out to be used as a singleton.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tbb::task_arena without forward declaring tbb::interface7
This class is a wrapper over tbb::task_arena, in order to keep TBB away from ROOT's headers. We keep a single global instance to be used by any parallel ROOT class with TBB as a backend.
TThreadExecutor, IMT and any class relying on TBB will get a pointer to the scheduler through ROOT::Internal::GetGlobalTaskArena()
, which will return areference to the only pointer to the TBB scheduler that will be active in any ROOT Process.
Definition at line 63 of file RTaskArena.hxx.
Classes | |
struct | Attach |
Marker for attaching to an existing tbb::task_arena. More... | |
Public Member Functions | |
RTaskArenaWrapper (Attach) | |
Initializes the tbb::task_arena within RTaskArenaWrapper by attaching to an existing arena. | |
RTaskArenaWrapper (unsigned maxConcurrency=0) | |
Initializes the tbb::task_arena within RTaskArenaWrapper. | |
~RTaskArenaWrapper () | |
ROOT::ROpaqueTaskArena & | Access () |
Provides access to the wrapped tbb::task_arena. | |
Static Public Member Functions | |
static unsigned | TaskArenaSize () |
Private Attributes | |
std::unique_ptr< ROOT::ROpaqueTaskArena > | fTBBArena |
Static Private Attributes | |
static unsigned | fNWorkers = 0u |
Friends | |
std::shared_ptr< ROOT::Internal::RTaskArenaWrapper > | GetGlobalTaskArena (unsigned, ROOT::EIMTConfig) |
#include <ROOT/RTaskArena.hxx>
ROOT::Internal::RTaskArenaWrapper::~RTaskArenaWrapper | ( | ) |
Definition at line 126 of file RTaskArena.cxx.
ROOT::Internal::RTaskArenaWrapper::RTaskArenaWrapper | ( | unsigned | maxConcurrency = 0 | ) |
Initializes the tbb::task_arena within RTaskArenaWrapper.
Definition at line 94 of file RTaskArena.cxx.
ROOT::Internal::RTaskArenaWrapper::RTaskArenaWrapper | ( | RTaskArenaWrapper::Attach | ) |
Initializes the tbb::task_arena within RTaskArenaWrapper by attaching to an existing arena.
Definition at line 118 of file RTaskArena.cxx.
ROOT::ROpaqueTaskArena & ROOT::Internal::RTaskArenaWrapper::Access | ( | ) |
Provides access to the wrapped tbb::task_arena.
Definition at line 140 of file RTaskArena.cxx.
|
static |
Definition at line 133 of file RTaskArena.cxx.
|
friend |
Definition at line 146 of file RTaskArena.cxx.
|
staticprivate |
Definition at line 76 of file RTaskArena.hxx.
|
private |
Definition at line 75 of file RTaskArena.hxx.