| 
    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