|
Nektar++
|
Implementation class for ThreadManagerBoost. More...
#include <ThreadBoost.h>

Public Member Functions | |
| ThreadWorkerBoost (ThreadManagerBoost *threadManager, unsigned int workerNum) | |
| Constructor. More... | |
| ~ThreadWorkerBoost () | |
| Destructor. More... | |
| void | operator() () |
| This provides the interface that boost::thread uses to start the worker. More... | |
| unsigned int | GetWorkerNum () |
| Return the index of the worker thread. More... | |
| void | Stop () |
| A signal to shut down. More... | |
Private Member Functions | |
| ThreadWorkerBoost () | |
| ThreadWorkerBoost (const ThreadWorkerBoost &) | |
| void | MainLoop () |
| void | LoadJobs () |
| unsigned int | GetNumToLoad () |
| void | WaitForActive () |
| void | RunJobs () |
Private Attributes | |
| ThreadManagerBoost * | m_threadManager |
| std::queue< ThreadJob * > | m_workerQueue |
| bool | m_keepgoing |
| unsigned int | m_threadNum |
Implementation class for ThreadManagerBoost.
Each instance of this class corresponds to a worker thread. Instances manage their own queue of jobs to run, grabbing new jobs from the master queue when it is exhausted.
Definition at line 127 of file ThreadBoost.h.
| Nektar::Thread::ThreadWorkerBoost::ThreadWorkerBoost | ( | ThreadManagerBoost * | tm, |
| unsigned int | workerNum | ||
| ) |
Constructor.
| threadManager | Pointer to the ThreadManagerBoost that is controlling this worker. |
| workerNum | Unique number from 0..(number_of_threads - 1) |
Called by the ThreadManagerBoost instance.
Definition at line 330 of file ThreadBoost.cpp.
| Nektar::Thread::ThreadWorkerBoost::~ThreadWorkerBoost | ( | ) |
Destructor.
Winds up this thread's execution. Jobs in its queue are lost.
Definition at line 343 of file ThreadBoost.cpp.
References m_keepgoing, and m_threadNum.
|
private |
|
private |
|
private |
Definition at line 394 of file ThreadBoost.cpp.
References ASSERTL0, Nektar::Thread::e_dynamic, Nektar::Thread::e_guided, Nektar::Thread::ThreadManagerBoost::m_chunkSize, Nektar::Thread::ThreadManagerBoost::m_masterQueue, Nektar::Thread::ThreadManagerBoost::m_numWorkers, Nektar::Thread::ThreadManagerBoost::m_schedType, and m_threadManager.
Referenced by LoadJobs().
|
inline |
Return the index of the worker thread.
Definition at line 143 of file ThreadBoost.h.
References m_threadNum.
|
private |
Definition at line 358 of file ThreadBoost.cpp.
References GetNumToLoad(), m_keepgoing, Nektar::Thread::ThreadManagerBoost::m_masterActiveMutex, Nektar::Thread::ThreadManagerBoost::m_masterQueue, Nektar::Thread::ThreadManagerBoost::m_masterQueueCondVar, Nektar::Thread::ThreadManagerBoost::m_masterQueueMutex, Nektar::Thread::ThreadManagerBoost::m_threadActiveList, Nektar::Thread::ThreadManagerBoost::m_threadBusyList, m_threadManager, m_threadNum, and m_workerQueue.
Referenced by MainLoop().
|
private |
Definition at line 439 of file ThreadBoost.cpp.
References LoadJobs(), m_keepgoing, RunJobs(), and WaitForActive().
Referenced by operator()().
|
inline |
This provides the interface that boost::thread uses to start the worker.
Definition at line 137 of file ThreadBoost.h.
References MainLoop().
|
private |
Definition at line 453 of file ThreadBoost.cpp.
References m_keepgoing, m_threadNum, m_workerQueue, Nektar::Thread::ThreadJob::Run(), and Nektar::Thread::ThreadJob::SetWorkerNum().
Referenced by MainLoop().
|
inline |
A signal to shut down.
If this method is called the worker will shut down. Used by the ThreadManagerBoost to stop threading.
Definition at line 150 of file ThreadBoost.h.
References m_keepgoing.
Referenced by Nektar::Thread::ThreadManagerBoost::~ThreadManagerBoost().
|
private |
Definition at line 422 of file ThreadBoost.cpp.
References m_keepgoing, Nektar::Thread::ThreadManagerBoost::m_masterActiveCondVar, Nektar::Thread::ThreadManagerBoost::m_masterActiveMutex, Nektar::Thread::ThreadManagerBoost::m_threadActiveList, m_threadManager, and m_threadNum.
Referenced by MainLoop().
|
private |
Definition at line 164 of file ThreadBoost.h.
Referenced by LoadJobs(), MainLoop(), RunJobs(), Stop(), WaitForActive(), and ~ThreadWorkerBoost().
|
private |
Definition at line 162 of file ThreadBoost.h.
Referenced by GetNumToLoad(), LoadJobs(), and WaitForActive().
|
private |
Definition at line 165 of file ThreadBoost.h.
Referenced by GetWorkerNum(), LoadJobs(), RunJobs(), WaitForActive(), and ~ThreadWorkerBoost().
|
private |
Definition at line 163 of file ThreadBoost.h.
Referenced by LoadJobs(), and RunJobs().
1.8.8