CMS 3D CMS Logo

List of all members | Public Member Functions | Static Private Member Functions | Private Attributes
edm::ThreadsController Class Reference

#include <ThreadsController.h>

Public Member Functions

void setStackSize (size_t iStackSize)
 
 ThreadsController ()=delete
 
 ThreadsController (unsigned int iNThreads)
 
 ThreadsController (unsigned int iNThreads, size_t iStackSize)
 

Static Private Member Functions

static std::unique_ptr< oneapi::tbb::global_control > makeStackSize (size_t iStackSize)
 

Private Attributes

oneapi::tbb::global_control m_nThreads
 
std::unique_ptr< oneapi::tbb::global_control > m_stackSize
 

Detailed Description

Definition at line 31 of file ThreadsController.h.

Constructor & Destructor Documentation

◆ ThreadsController() [1/3]

edm::ThreadsController::ThreadsController ( )
delete

◆ ThreadsController() [2/3]

edm::ThreadsController::ThreadsController ( unsigned int  iNThreads)
inlineexplicit

Definition at line 34 of file ThreadsController.h.

35  : m_nThreads{oneapi::tbb::global_control::max_allowed_parallelism, iNThreads}, m_stackSize{} {}
std::unique_ptr< oneapi::tbb::global_control > m_stackSize
oneapi::tbb::global_control m_nThreads

◆ ThreadsController() [3/3]

edm::ThreadsController::ThreadsController ( unsigned int  iNThreads,
size_t  iStackSize 
)
inline

Definition at line 36 of file ThreadsController.h.

37  : m_nThreads{oneapi::tbb::global_control::max_allowed_parallelism, iNThreads},
38  m_stackSize{makeStackSize(iStackSize)} {}
std::unique_ptr< oneapi::tbb::global_control > m_stackSize
oneapi::tbb::global_control m_nThreads
static std::unique_ptr< oneapi::tbb::global_control > makeStackSize(size_t iStackSize)

Member Function Documentation

◆ makeStackSize()

std::unique_ptr< oneapi::tbb::global_control > ThreadsController::makeStackSize ( size_t  iStackSize)
staticprivate

Definition at line 19 of file ThreadsController.cc.

Referenced by setStackSize().

19  {
20  return std::make_unique<oneapi::tbb::global_control>(oneapi::tbb::global_control::thread_stack_size, iStackSize);
21  }

◆ setStackSize()

void edm::ThreadsController::setStackSize ( size_t  iStackSize)
inline

Definition at line 41 of file ThreadsController.h.

References m_stackSize, and makeStackSize().

41 { m_stackSize = makeStackSize(iStackSize); }
std::unique_ptr< oneapi::tbb::global_control > m_stackSize
static std::unique_ptr< oneapi::tbb::global_control > makeStackSize(size_t iStackSize)

Member Data Documentation

◆ m_nThreads

oneapi::tbb::global_control edm::ThreadsController::m_nThreads
private

Definition at line 47 of file ThreadsController.h.

◆ m_stackSize

std::unique_ptr<oneapi::tbb::global_control> edm::ThreadsController::m_stackSize
private

Definition at line 48 of file ThreadsController.h.

Referenced by setStackSize().