Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# vtkMultiThreader Class Reference

`#include <vtkMultiThreader.h>`

Inheritance diagram for vtkMultiThreader:

[legend]
Collaboration diagram for vtkMultiThreader:

[legend]
List of all members.

## Detailed Description

A class for performing multithreaded execution.

Date:
  2003/01/29 21:14:52

Revision:
  1.47

vtkMultithreader is a class that provides support for multithreaded execution using sproc() on an SGI, or pthread_create on any platform supporting POSIX threads. This class can be used to execute a single method on multiple threads, or to specify a method per thread.

Created by:
  - Avila, Lisa

CVS contributions (if > 5%):
  - Avila, Lisa (46%)
  - Martin, Ken (27%)
  - Law, Charles (6%)

CVS logs (CVSweb):
  - .`cxx` (`/Common/vtkMultiThreader.cxx)`
  - .`h` (`/Common/vtkMultiThreader.h)`

Definition at line 101 of file vtkMultiThreader.h.

## Public Types

typedef vtkObject | Superclass

## Public Methods

virtual const char * | GetClassName ()
virtual int | IsA (const char *type)
void | PrintSelf (ostream &os, vtkIndent indent)
void | SingleMethodExecute ()
void | MultipleMethodExecute ()
void | SetSingleMethod (vtkThreadFunctionType, void *data)
void | SetMultipleMethod (int index, vtkThreadFunctionType, void *data)
int | SpawnThread (vtkThreadFunctionType, void *data)
void | TerminateThread (int thread_id)
virtual void | SetNumberOfThreads (int)
virtual int | GetNumberOfThreads ()

## Static Public Methods

vtkMultiThreader * | New ()
int | IsTypeOf (const char *type)
vtkMultiThreader * | SafeDownCast (vtkObject *o)
void | SetGlobalMaximumNumberOfThreads (int val)
int | GetGlobalMaximumNumberOfThreads ()
void | SetGlobalDefaultNumberOfThreads (int val)
int | GetGlobalDefaultNumberOfThreads ()

## Protected Methods

| vtkMultiThreader ()
| ~vtkMultiThreader ()

## Protected Attributes

int | NumberOfThreads
ThreadInfo | ThreadInfoArray [VTK_MAX_THREADS]
vtkThreadFunctionType | SingleMethod
vtkThreadFunctionType | MultipleMethod [VTK_MAX_THREADS]
int | SpawnedThreadActiveFlag [VTK_MAX_THREADS]
vtkMutexLock * | SpawnedThreadActiveFlagLock [VTK_MAX_THREADS]
vtkThreadProcessIDType | SpawnedThreadProcessID [VTK_MAX_THREADS]
ThreadInfo | SpawnedThreadInfoArray [VTK_MAX_THREADS]
void * | SingleData
void * | MultipleData [VTK_MAX_THREADS]

## Member Typedef Documentation

typedef vtkObject vtkMultiThreader::Superclass

| Reimplemented from vtkObject. Definition at line 106 of file vtkMultiThreader.h.

## Constructor & Destructor Documentation

vtkMultiThreader::vtkMultiThreader | ( |  | ) | `[protected]`

vtkMultiThreader::~vtkMultiThreader | ( |  | ) | `[protected]`

## Member Function Documentation

vtkMultiThreader* vtkMultiThreader::New | ( |  | ) | `[static]`

| Create an object with Debug turned off, modified time initialized to zero, and reference counting on. Reimplemented from vtkObject.

virtual const char* vtkMultiThreader::GetClassName | ( |  | ) | `[virtual]`

| Reimplemented from vtkObject.

int vtkMultiThreader::IsTypeOf | ( | const char * | type | ) | `[static]`

| Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. Reimplemented from vtkObject.

virtual int vtkMultiThreader::IsA | ( | const char * | type | ) | `[virtual]`

| Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. Reimplemented from vtkObject.

vtkMultiThreader* vtkMultiThreader::SafeDownCast | ( | vtkObject * | o | ) | `[static]`

| Reimplemented from vtkObject.

void vtkMultiThreader::PrintSelf | ( | ostream & | os,
|  | vtkIndent | indent
| ) | `[virtual]`

| Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes. Reimplemented from vtkObject.

virtual void vtkMultiThreader::SetNumberOfThreads | ( | int |  | ) | `[virtual]`

| Get/Set the number of threads to create. It will be clamped to the range 1 - VTK_MAX_THREADS, so the caller of this method should check that the requested number of threads was accepted.

virtual int vtkMultiThreader::GetNumberOfThreads | ( |  | ) | `[virtual]`

| Get/Set the number of threads to create. It will be clamped to the range 1 - VTK_MAX_THREADS, so the caller of this method should check that the requested number of threads was accepted.

void vtkMultiThreader::SetGlobalMaximumNumberOfThreads | ( | int | val | ) | `[static]`

| Set/Get the maximum number of threads to use when multithreading. This limits and overrides any other settings for multithreading. A value of zero indicates no limit.

int vtkMultiThreader::GetGlobalMaximumNumberOfThreads | ( |  | ) | `[static]`

| Set/Get the maximum number of threads to use when multithreading. This limits and overrides any other settings for multithreading. A value of zero indicates no limit.

void vtkMultiThreader::SetGlobalDefaultNumberOfThreads | ( | int | val | ) | `[static]`

| Set/Get the value which is used to initialize the NumberOfThreads in the constructor. Initially this default is set to the number of processors or VTK_MAX_THREADS (which ever is less).

int vtkMultiThreader::GetGlobalDefaultNumberOfThreads | ( |  | ) | `[static]`

| Set/Get the value which is used to initialize the NumberOfThreads in the constructor. Initially this default is set to the number of processors or VTK_MAX_THREADS (which ever is less).

void vtkMultiThreader::SingleMethodExecute | ( |  | ) |

| Execute the SingleMethod (as define by SetSingleMethod) using this->NumberOfThreads threads.

void vtkMultiThreader::MultipleMethodExecute | ( |  | ) |

| Execute the MultipleMethods (as define by calling SetMultipleMethod for each of the required this->NumberOfThreads methods) using this->NumberOfThreads threads.

void vtkMultiThreader::SetSingleMethod | ( | vtkThreadFunctionType | ,
|  | void * | data
| ) |

| Set the SingleMethod to f() and the UserData field of the ThreadInfo that is passed to it will be data. This method (and all the methods passed to SetMultipleMethod) must be of type vtkThreadFunctionType and must take a single argument of type void *.

void vtkMultiThreader::SetMultipleMethod | ( | int | index,
|  | vtkThreadFunctionType | ,
|  | void * | data
| ) |

| Set the MultipleMethod at the given index to f() and the UserData field of the ThreadInfo that is passed to it will be data.

int vtkMultiThreader::SpawnThread | ( | vtkThreadFunctionType | ,
|  | void * | data
| ) |

| Create a new thread for the given function. Return a thread id which is a number between 0 and VTK_MAX_THREADS - 1. This id should be used to kill the thread at a later time.

void vtkMultiThreader::TerminateThread | ( | int | thread_id | ) |

| Terminate the thread that was created with a SpawnThreadExecute()

## Member Data Documentation

int vtkMultiThreader::NumberOfThreads`[protected]`

| Definition at line 195 of file vtkMultiThreader.h.

ThreadInfo vtkMultiThreader::ThreadInfoArray[VTK_MAX_THREADS]`[protected]`

| Definition at line 200 of file vtkMultiThreader.h.

vtkThreadFunctionType vtkMultiThreader::SingleMethod`[protected]`

| Definition at line 203 of file vtkMultiThreader.h.

vtkThreadFunctionType vtkMultiThreader::MultipleMethod[VTK_MAX_THREADS]`[protected]`

| Definition at line 204 of file vtkMultiThreader.h.

int vtkMultiThreader::SpawnedThreadActiveFlag[VTK_MAX_THREADS]`[protected]`

| Definition at line 208 of file vtkMultiThreader.h.

vtkMutexLock* vtkMultiThreader::SpawnedThreadActiveFlagLock[VTK_MAX_THREADS]`[protected]`

| Definition at line 209 of file vtkMultiThreader.h.

vtkThreadProcessIDType vtkMultiThreader::SpawnedThreadProcessID[VTK_MAX_THREADS]`[protected]`

| Definition at line 210 of file vtkMultiThreader.h.

ThreadInfo vtkMultiThreader::SpawnedThreadInfoArray[VTK_MAX_THREADS]`[protected]`

| Definition at line 211 of file vtkMultiThreader.h.

void* vtkMultiThreader::SingleData`[protected]`

| Definition at line 216 of file vtkMultiThreader.h.

void* vtkMultiThreader::MultipleData[VTK_MAX_THREADS]`[protected]`

| Definition at line 217 of file vtkMultiThreader.h.

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

- Common/vtkMultiThreader.h