Marine systems simulation
CoRiBoDynamics::CoreBoundThreadPool Class Reference
+ Collaboration diagram for CoRiBoDynamics::CoreBoundThreadPool:

Classes

class  mutex_queue
 if task are ordered roughly according to decreasing size, smart_index will return a 'good' core allocation order, taking hyperthread clustering into account More...
 
class  Task
 
class  WorkUnit
 Core bound thread unit with a task queue. More...
 

Public Member Functions

 CoreBoundThreadPool (int pool_size, int start_ix, bool hyperthreading_core_merge)
 
void ExecuteTask (Task *task, int thread_id)
 
void ExecuteTask (Task *task)
 
void ExecuteTaskSet (std::function< Task *(int)> task_set, int num)
 
void ExecuteTaskSet (std::function< Task *(int)> task_set, std::function< int(int)> thread_id, int num)
 
void BlockUntilCompletion (int thread_id)
 
void BlockUntilCompletion ()
 
int PoolSize ()
 
int smart_index (int ix)
 

Protected Attributes

std::vector< WorkUnit * > m_WorkUnit
 
bool m_DestructorCalled
 
std::mutex m_mutex
 
mutex_queue m_shared_queue
 
bool m_hyperthreading_core_merge
 

The documentation for this class was generated from the following file: