VTK
|
A class for performing multithreaded execution. More...
#include <vtkMultiThreader.h>
Classes | |
class | ThreadInfo |
Public Types | |
typedef vtkObject | Superclass |
Public Types inherited from vtkObject | |
typedef vtkObjectBase | Superclass |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkMultiThreader * | NewInstance () 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 () |
Public Member Functions inherited from vtkObject | |
vtkObject * | NewInstance () const |
virtual void | DebugOn () |
virtual void | DebugOff () |
bool | GetDebug () |
void | SetDebug (bool debugFlag) |
virtual void | Modified () |
virtual unsigned long | GetMTime () |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
vtkCommand * | GetCommand (unsigned long tag) |
void | RemoveObserver (vtkCommand *) |
void | RemoveObservers (unsigned long event, vtkCommand *) |
void | RemoveObservers (const char *event, vtkCommand *) |
int | HasObserver (unsigned long event, vtkCommand *) |
int | HasObserver (const char *event, vtkCommand *) |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
int | HasObserver (unsigned long event) |
int | HasObserver (const char *event) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
int | InvokeEvent (unsigned long event, void *callData) |
int | InvokeEvent (const char *event, void *callData) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
virtual void | Delete () |
virtual void | FastDelete () |
void | Print (ostream &os) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
void | SetReferenceCount (int) |
void | PrintRevisions (ostream &) |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
int | GetReferenceCount () |
Static Public Member Functions | |
static vtkMultiThreader * | New () |
static int | IsTypeOf (const char *type) |
static vtkMultiThreader * | SafeDownCast (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) |
Static Public Member Functions inherited from vtkObject | |
static int | IsTypeOf (const char *type) |
static vtkObject * | SafeDownCast (vtkObjectBase *o) |
static vtkObject * | New () |
static void | BreakOnError () |
static void | SetGlobalWarningDisplay (int val) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static int | GetGlobalWarningDisplay () |
Static Public Member Functions inherited from vtkObjectBase | |
static int | IsTypeOf (const char *name) |
static vtkObjectBase * | New () |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkMultiThreader () | |
~vtkMultiThreader () | |
Protected Member Functions inherited from vtkObject | |
vtkObject () | |
virtual | ~vtkObject () |
virtual void | RegisterInternal (vtkObjectBase *, int check) |
virtual void | UnRegisterInternal (vtkObjectBase *, int check) |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
void | InternalReleaseFocus () |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | CollectRevisions (ostream &) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
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] |
Protected Attributes inherited from vtkObject | |
bool | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
Protected Attributes inherited from vtkObjectBase | |
vtkAtomicInt32 | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
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.
Definition at line 93 of file vtkMultiThreader.h.
Definition at line 98 of file vtkMultiThreader.h.
|
protected |
|
protected |
|
static |
|
static |
|
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.
|
static |
|
protectedvirtual |
Reimplemented from vtkObject.
vtkMultiThreader* vtkMultiThreader::NewInstance | ( | ) | const |
|
virtual |
|
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 |
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.
|
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.
|
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.
|
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).
|
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()
|
static |
Get the thread identifier of the calling thread.
|
static |
Check whether two thread identifiers refer to the same thread.
|
protected |
Definition at line 198 of file vtkMultiThreader.h.
|
protected |
Definition at line 203 of file vtkMultiThreader.h.
|
protected |
Definition at line 206 of file vtkMultiThreader.h.
|
protected |
Definition at line 207 of file vtkMultiThreader.h.
|
protected |
Definition at line 211 of file vtkMultiThreader.h.
|
protected |
Definition at line 212 of file vtkMultiThreader.h.
|
protected |
Definition at line 213 of file vtkMultiThreader.h.
|
protected |
Definition at line 214 of file vtkMultiThreader.h.
|
protected |
Definition at line 219 of file vtkMultiThreader.h.
|
protected |
Definition at line 220 of file vtkMultiThreader.h.