MThreadPool Class Reference
[OpenMaya - API module for common classes]

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


Static Public Member Functions

static MStatus  init ()
static MStatus  newParallelRegion (MThreadCallbackFunc func, void *data)
static MStatus  createTask (MThreadFunc func, void *data, MThreadRootTask *root)
static MStatus  executeAndJoin (MThreadRootTask *root)
static void  release ()

Member Function Documentation

MStatus MThreadPool::init (  )  [static]

Initialize thread pool creation. No threads are created by this call.

Returns:
Examples:

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:
Examples:

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:
Examples:

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:
Examples:

void MThreadPool::release (  )  [static]

Release decreases the reference count on the thread pool. When the reference count reaches zero the thread pool is deleted.

Examples:

Autodesk® Maya® 2011 © 1997-2010 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6