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.