47 #ifndef __vtkExecutionScheduler_h
48 #define __vtkExecutionScheduler_h
51 #include "vtkExecutionSchedulerManager.h"
54 class vtkComputingResources;
60 class vtkExecutiveCollection;
78 void Schedule(vtkExecutiveCollection *execs,
vtkInformation *info);
83 void SchedulePropagate(vtkExecutiveCollection *execs,
vtkInformation *info);
87 void WaitUntilDone(vtkExecutiveCollection *execs);
91 void WaitUntilReleased(vtkExecutiveCollection *execs);
94 void WaitUntilAllDone();
99 void WaitForTaskDone(vtkExecutive *exec);
103 void WaitForInputsReleased(vtkExecutive *exec);
115 vtkMutexLock* GetInputsReleasedLock(vtkExecutive *exec);
118 void ReleaseResources(vtkExecutive *exec);
121 void ReacquireResources(vtkExecutive *exec);
125 void RescheduleNetwork(vtkExecutive *sink);
129 void RescheduleFrom(vtkExecutive *sink, vtkComputingResources *resources);
143 class implementation;
145 friend class implementation;
149 friend void * vtkExecutionScheduler_ScheduleThread(
void *data);
153 friend void * vtkExecutionScheduler_ExecuteThread(
void *data);
159 static void ClassInitialize();
160 static void ClassFinalize();
161 friend class vtkExecutionSchedulerManager;
abstract base class for most VTK objects
A class for performing multithreaded execution.
Scheduling execution with thread/computing resources distributing.
vtkMultiThreader * ScheduleThreader
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
vtkThreadMessager * ScheduleMessager
A class for performing inter-thread messaging.
vtkMutexLock * ScheduleLock
vtkThreadMessager * ResourceMessager
mutual exclusion locking class
vtkComputingResources * Resources
implementation *const Implementation