VTK
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkMultiThreader Class Reference

A class for performing multithreaded execution. More...

#include <vtkMultiThreader.h>

Inheritance diagram for vtkMultiThreader:
Inheritance graph
[legend]
Collaboration diagram for vtkMultiThreader:
Collaboration graph
[legend]

List of all members.

Classes

class  ThreadInfo

Public Types

typedef vtkObject Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkMultiThreaderNewInstance () const
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)
int IsThreadActive (int threadID)
virtual void SetNumberOfThreads (int)
virtual int GetNumberOfThreads ()

Static Public Member Functions

static vtkMultiThreaderNew ()
static int IsTypeOf (const char *type)
static vtkMultiThreaderSafeDownCast (vtkObjectBase *o)
static vtkMultiThreaderIDType GetCurrentThreadID ()
static void SetGlobalMaximumNumberOfThreads (int val)
static int GetGlobalMaximumNumberOfThreads ()
static void SetGlobalDefaultNumberOfThreads (int val)
static int GetGlobalDefaultNumberOfThreads ()
static int ThreadsEqual (vtkMultiThreaderIDType t1, vtkMultiThreaderIDType t2)

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkMultiThreader ()
 ~vtkMultiThreader ()

Protected Attributes

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

Detailed Description

A class for performing multithreaded execution.

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.

Tests:
vtkMultiThreader (Tests)

Definition at line 93 of file vtkMultiThreader.h.


Member Typedef Documentation

Reimplemented from vtkObject.

Definition at line 98 of file vtkMultiThreader.h.


Constructor & Destructor Documentation


Member Function Documentation

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

Reimplemented from vtkObject.

static int vtkMultiThreader::IsTypeOf ( const char *  name) [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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

virtual int vtkMultiThreader::IsA ( const char *  name) [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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

Reimplemented from vtkObject.

virtual vtkObjectBase* vtkMultiThreader::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkObject.

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.

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.

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.

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.

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

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

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

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

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.

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.

Terminate the thread that was created with a SpawnThreadExecute()

Determine if a thread is still active

Get the thread identifier of the calling thread.

Check whether two thread identifiers refer to the same thread.


Member Data Documentation

Definition at line 198 of file vtkMultiThreader.h.

ThreadInfo vtkMultiThreader::ThreadInfoArray[VTK_MAX_THREADS] [protected]

Definition at line 203 of file vtkMultiThreader.h.

Definition at line 206 of file vtkMultiThreader.h.

Definition at line 207 of file vtkMultiThreader.h.

int vtkMultiThreader::SpawnedThreadActiveFlag[VTK_MAX_THREADS] [protected]

Definition at line 211 of file vtkMultiThreader.h.

Definition at line 212 of file vtkMultiThreader.h.

Definition at line 213 of file vtkMultiThreader.h.

Definition at line 214 of file vtkMultiThreader.h.

void* vtkMultiThreader::SingleData [protected]

Definition at line 219 of file vtkMultiThreader.h.

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

Definition at line 220 of file vtkMultiThreader.h.


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