#include <vtkMultiThreader.h>
Inheritance diagram for vtkMultiThreader:
Public Methods | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | SetNumberOfThreads (int) |
virtual int | GetNumberOfThreads () |
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) |
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 () | |
vtkMultiThreader (const vtkMultiThreader &) | |
void | operator= (const vtkMultiThreader &) |
Protected Attributes | |
int | NumberOfThreads |
ThreadInfoStruct | 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] |
ThreadInfoStruct | SpawnedThreadInfoArray [VTK_MAX_THREADS] |
void * | SingleData |
void * | MultipleData [VTK_MAX_THREADS] |
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.
|
Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h. Reimplemented from vtkObject. |
|
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. |
|
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. |
|
Execute the MultipleMethods (as define by calling SetMultipleMethod for each of the required this->NumberOfThreads methods) using this->NumberOfThreads threads. |
|
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. Reimplemented from vtkObject. |
|
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. |
|
Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h. Reimplemented from vtkObject. |
|
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 8 (which ever is less). |
|
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 the MultipleMethod at the given index to f() and the UserData field of the ThreadInfoStruct that is passed to it will be data. |
|
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 the SingleMethod to f() and the UserData field of the ThreadInfoStruct 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 *. |
|
Execute the SingleMethod (as define by SetSingleMethod) using this->NumberOfThreads threads. |
|
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() |