#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.