37 #include <boost/core/ignore_unused.hpp>
115 : m_threadManagers(THREADMANAGER_MAX), m_mutex(), m_threadingType()
150 "Tried to SetThreadingType when it was already set");
187 "Trying to create a ThreadManager before SetThreadingType called");
214 boost::ignore_unused(joblist);
216 "Attempted to QueueJobs in ThreadDefaultManager");
224 boost::ignore_unused(job);
226 "Attempted to QueueJob in ThreadDefaultManager");
251 "Attempted to SetNumWorkers to != 1 in ThreadDefaultManager");
283 boost::ignore_unused(chnk);
285 "Attempted to SetChunkSize in ThreadDefaultManager");
293 boost::ignore_unused(s);
295 "Attempted to SetSchedType in ThreadDefaultManager");
336 boost::ignore_unused(src);
#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
virtual bool v_IsInitialised() override
virtual unsigned int v_GetWorkerNum() override
virtual ~ThreadStartupManager()
ThreadStartupManager & operator=(const ThreadStartupManager &src)
ThreadDefaultManager copy constructor.
virtual unsigned int v_GetMaxNumWorkers() override
ThreadStartupManager()
ThreadDefaultManager.
virtual void v_SetSchedType(SchedType s) override
virtual void v_SetNumWorkers() override
virtual void v_QueueJob(ThreadJob *job) override
virtual bool v_InThread() override
virtual void v_QueueJobs(std::vector< ThreadJob * > &joblist) override
virtual unsigned int v_GetNumWorkers() override
virtual void v_Hold() override
virtual void v_SetChunkSize(unsigned int chnk) override
virtual void v_Wait() override
virtual const std::string & v_GetType() const override
SchedType
Identifies the algorithm for scheduling.
ThreadManagerFactory & GetThreadManagerFactory()
std::shared_ptr< ThreadManager > ThreadManagerSharedPtr
ThreadMaster & GetThreadMaster()
The above copyright notice and this permission notice shall be included.