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.
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 64 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 125 of file RTaskArena.cxx.
ROOT::Internal::RTaskArenaWrapper::RTaskArenaWrapper | ( | unsigned | maxConcurrency = 0 | ) |
Initializes the tbb::task_arena within RTaskArenaWrapper.
Definition at line 93 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 117 of file RTaskArena.cxx.
ROOT::ROpaqueTaskArena & ROOT::Internal::RTaskArenaWrapper::Access | ( | ) |
Provides access to the wrapped tbb::task_arena.
Definition at line 139 of file RTaskArena.cxx.
|
static |
Definition at line 132 of file RTaskArena.cxx.
|
friend |
Definition at line 145 of file RTaskArena.cxx.
|
staticprivate |
Definition at line 77 of file RTaskArena.hxx.
|
private |
Definition at line 76 of file RTaskArena.hxx.