#include <vtkExecutionScheduler.h>
This is a class for balancing the computing resources throughout the network
Definition at line 62 of file vtkExecutionScheduler.h.
vtkExecutionScheduler::vtkExecutionScheduler | ( | ) | [protected] |
vtkExecutionScheduler::~vtkExecutionScheduler | ( | ) | [protected] |
static vtkExecutionScheduler* vtkExecutionScheduler::New | ( | ) | [static] |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
Reimplemented from vtkObject.
virtual const char* vtkExecutionScheduler::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkObject.
static int vtkExecutionScheduler::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 vtkExecutionScheduler::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.
static vtkExecutionScheduler* vtkExecutionScheduler::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkObject.
void vtkExecutionScheduler::PrintSelf | ( | ostream & | os, | |
vtkIndent | indent | |||
) | [virtual] |
static vtkExecutionScheduler* vtkExecutionScheduler::GetGlobalScheduler | ( | ) | [static] |
Return the global instance of the scheduler
static vtkInformationIntegerKey* vtkExecutionScheduler::TASK_PRIORITY | ( | ) | [static] |
Key to store the priority of a task
void vtkExecutionScheduler::Schedule | ( | vtkExecutiveCollection * | execs, | |
vtkInformation * | info | |||
) |
Put the current set of executives (modules) to the be scheduled given its dependency graph which will be used to compute the set topological orders
void vtkExecutionScheduler::SchedulePropagate | ( | vtkExecutiveCollection * | execs, | |
vtkInformation * | info | |||
) |
Put the current set of executives (modules) to the be scheduled given its dependency graph which will be used to compute the set topological orders. Then wait for their execution to be complete
void vtkExecutionScheduler::WaitUntilDone | ( | vtkExecutiveCollection * | execs | ) |
Wait until the current set of executives (modules) have finished executing
void vtkExecutionScheduler::WaitUntilReleased | ( | vtkExecutiveCollection * | execs | ) |
Wait until the current set of executives (modules) have their inputs released
void vtkExecutionScheduler::WaitUntilAllDone | ( | ) |
Wait for all tasks to be done
void vtkExecutionScheduler::WaitForTaskDone | ( | vtkExecutive * | exec | ) |
Wait for a task that is on the scheduling queue to be done. If the task is not there, this will return immediately. If the exec is NULL, any task that is done will trigger this the return
void vtkExecutionScheduler::WaitForInputsReleased | ( | vtkExecutive * | exec | ) |
Similar to WaitForTaskDone but return whenever input connections of a task are released instead of done computing. But exec cannot be NULL.
vtkThreadMessager* vtkExecutionScheduler::GetTaskDoneMessager | ( | vtkExecutive * | exec | ) |
Return the thread messager reserved for the given exec to notify when it is done
vtkThreadMessager* vtkExecutionScheduler::GetInputsReleasedMessager | ( | vtkExecutive * | exec | ) |
Return the thread messager reserved for the given exec to notify when it releases its inputs
vtkMutexLock* vtkExecutionScheduler::GetInputsReleasedLock | ( | vtkExecutive * | exec | ) |
Return the mutex lock reserved for the given exec to notify when it releases its inputs
void vtkExecutionScheduler::ReleaseResources | ( | vtkExecutive * | exec | ) |
Release the resources that are being used by the given exec
void vtkExecutionScheduler::ReacquireResources | ( | vtkExecutive * | exec | ) |
Re-acquire the resource released earlier by ReleaseResource
void vtkExecutionScheduler::RescheduleNetwork | ( | vtkExecutive * | sink | ) |
Redistribute the thread resources over the network from a sink with a maximum resource
void vtkExecutionScheduler::RescheduleFrom | ( | vtkExecutive * | sink, | |
vtkComputingResources * | resources | |||
) |
Redistribute the thread resources from a sink given a certain amount of resource
static void vtkExecutionScheduler::ClassInitialize | ( | ) | [static, protected] |
and clean up of the vtkExecutionScheduler singleton.
static void vtkExecutionScheduler::ClassFinalize | ( | ) | [static, protected] |
and clean up of the vtkExecutionScheduler singleton.
friend class implementation [friend] |
Definition at line 145 of file vtkExecutionScheduler.h.
friend class vtkExecutionSchedulerManager [friend] |
and clean up of the vtkExecutionScheduler singleton.
Definition at line 161 of file vtkExecutionScheduler.h.
void* vtkExecutionScheduler_ScheduleThread | ( | void * | data | ) | [friend] |
The scheduling thread that is responsible for queueing up module execution in the right order
void* vtkExecutionScheduler_ExecuteThread | ( | void * | data | ) | [friend] |
Execute thread function that is responsible for forking process for each module
vtkComputingResources* vtkExecutionScheduler::Resources [protected] |
Definition at line 135 of file vtkExecutionScheduler.h.
vtkThreadMessager* vtkExecutionScheduler::ScheduleMessager [protected] |
Definition at line 136 of file vtkExecutionScheduler.h.
vtkThreadMessager* vtkExecutionScheduler::ResourceMessager [protected] |
Definition at line 137 of file vtkExecutionScheduler.h.
vtkMutexLock* vtkExecutionScheduler::ScheduleLock [protected] |
Definition at line 138 of file vtkExecutionScheduler.h.
vtkMultiThreader* vtkExecutionScheduler::ScheduleThreader [protected] |
Definition at line 139 of file vtkExecutionScheduler.h.
int vtkExecutionScheduler::ScheduleThreadId [protected] |
Definition at line 140 of file vtkExecutionScheduler.h.
implementation* const vtkExecutionScheduler::Implementation [protected] |
Definition at line 143 of file vtkExecutionScheduler.h.