111 : m_threadManagers(THREADMANAGER_MAX), m_mutex(), m_threadingType()
146 "Tried to SetThreadingType when it was already set");
183 "Trying to create a ThreadManager before SetThreadingType called");
209 [[maybe_unused]] std::vector<ThreadJob *> &joblist)
212 "Attempted to QueueJobs in ThreadDefaultManager");
221 "Attempted to QueueJob in ThreadDefaultManager");
246 "Attempted to SetNumWorkers to != 1 in ThreadDefaultManager");
279 "Attempted to SetChunkSize in ThreadDefaultManager");
288 "Attempted to SetSchedType in ThreadDefaultManager");
#define ASSERTL0(condition, msg)
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Provides a generic Factory class.
tBaseSharedPtr CreateInstance(tKey idKey, tParam... args)
Create an instance of the class referred to by idKey.
Base class for tasks to be sent to the ThreadManager to run.
virtual ~ThreadJob()
Base destructor.
void SetWorkerNum(unsigned int num)
Set number of worker threads.
ThreadJob()
Base constructor.
unsigned int GetWorkerNum()
virtual ~ThreadManager()
Destructor.
virtual bool v_IsInitialised()
~ThreadMaster()
Destructor.
void SetThreadingType(const std::string &p_type)
Sets what ThreadManagers will be created in CreateInstance.
ThreadManagerSharedPtr CreateInstance(const ThreadManagerName t, unsigned int nThr)
Creates an instance of a ThreadManager (which one is determined by a previous call to SetThreadingTyp...
ThreadManagerSharedPtr & GetInstance(const ThreadManagerName t)
Gets the ThreadManager associated with string s.
ThreadMaster()
Constructor.
std::vector< ThreadManagerSharedPtr > m_threadManagers
std::string m_threadingType
bool v_IsInitialised() override
unsigned int v_GetWorkerNum() override
ThreadStartupManager & operator=(const ThreadStartupManager &src)
ThreadDefaultManager copy constructor.
unsigned int v_GetMaxNumWorkers() override
ThreadStartupManager()
ThreadDefaultManager.
void v_SetSchedType(SchedType s) override
void v_SetNumWorkers() override
void v_QueueJob(ThreadJob *job) override
bool v_InThread() override
void v_QueueJobs(std::vector< ThreadJob * > &joblist) override
unsigned int v_GetNumWorkers() override
void v_SetChunkSize(unsigned int chnk) override
const std::string & v_GetType() const override
~ThreadStartupManager() override
SchedType
Identifies the algorithm for scheduling.
ThreadManagerFactory & GetThreadManagerFactory()
std::shared_ptr< ThreadManager > ThreadManagerSharedPtr
ThreadMaster & GetThreadMaster()