#include
<MThreadPool.h>
List of all
members.
Detailed Description
Methods for creating and managing a thread pool.
MThreadPool
class. The thread pool is created with a number of threads equal to
one less than the number of logical processors.
Member Function Documentation
| MStatus MThreadPool::init | ( |  | ) | [static] | 
 
Initialize thread pool creation. No threads are created by this
call.
- Returns:
- 
 
 
| MStatus
MThreadPool::newParallelRegion | ( | MThreadCallbackFunc | func, | 
|  |  | void * | data |  | 
|  | ) |  |  | [static] | 
 
Creates a new parallel region. All tasks created by createTask()
will be added to this region. init()
must be called to create the thread pool before calling this
function.
- Parameters:
- 
| [in] | func | pointer to function to be executed by threads |  
| [in] | data | data for function |  
 
- Returns:
- 
 
 
| MStatus MThreadPool::createTask | ( | MThreadFunc | func, | 
|  |  | void * | data, | 
|  |  | MThreadRootTask * | root |  | 
|  | ) |  |  | [static] | 
 
Add a single task to the parallel region. The parallel region
must already have been created by calling newParallelRegion.
- Parameters:
- 
| [in] | func | pointer to function to be executed by threads |  
| [in] | data | data for function |  
| [in] | root | root task |  
 
- Returns:
- 
 
 
| MStatus MThreadPool::executeAndJoin | ( | MThreadRootTask * | root | ) | [static] | 
 
Run all tasks in the present parallel region to completion. This
function must be called from within a function invoked by the
method newParallelRegion.
- Parameters:
- 
| [in] | root | task to execute |  
 
- Returns:
- 
 
 
| void MThreadPool::release | ( |  | ) | [static] | 
 
Release decreases the reference count on the thread pool. When
the reference count reaches zero the thread pool is deleted.