|
HDK
|
#include <taskGraph.h>
Inheritance diagram for WorkTaskGraph::BaseTask:Public Member Functions | |
| BaseTask ()=default | |
| virtual WORK_API | ~BaseTask () |
| virtual BaseTask * | execute ()=0 |
| void | AddChildReference () |
| int | RemoveChildReference () |
| template<typename F , typename... Args> | |
| F * | AllocateChild (Args &&...args) |
Public Member Functions inherited from WorkTaskGraph_DefaultImpl::BaseTask | |
| BaseTask ()=default | |
| WORK_API void | operator() (const int depth=0, WorkTaskGraph_DefaultImpl *const taskGraph=nullptr) const |
| void | AddChildReference () |
| int | RemoveChildReference () |
| template<typename F , typename... Args> | |
| F * | AllocateChild (Args &&...args) |
Protected Member Functions | |
| void | _RecycleAsContinuation () |
Protected Member Functions inherited from WorkTaskGraph_DefaultImpl::BaseTask | |
| void | _RecycleAsContinuation () |
Base class for a parallel task that emulates tbb::task (deprecated in the oneTBB version upgrade.) This task abstracts a block of concurrent work by exploiting knowledge of TBB's task-based work stealing scheduler architecture to provide memory and runtime optimizations.
This is a callable object that can serve as an anchor to dynamically spawn additional children. It supports continuation passing, recycling of task resources, and scheduler bypass. All task graph tasks are heap-allocated and automatically released/reclaimed using reference counting.
Definition at line 106 of file taskGraph.h.
|
default |
|
virtual |
Reimplemented from WorkTaskGraph_DefaultImpl::BaseTask.
|
inlineprotected |
Recycles this as a continuation task to mitigate the allocation overhead of the continuation task.
Definition at line 147 of file taskGraph.h.
|
inline |
Increment the reference count of child tasks that must complete before this task can proceed.
Definition at line 120 of file taskGraph.h.
|
inline |
Construct a new subtask and increment the reference count of the calling task.
Definition at line 133 of file taskGraph.h.
|
pure virtual |
Derived classes override this method to implement a parallel unit of work.
Implements WorkTaskGraph_DefaultImpl::BaseTask.
Implemented in VdfParallelExecutorEngineBase< Derived, DataManager >::_ComputeAllTask, VdfParallelExecutorEngineBase< Derived, DataManager >::_TouchTask, VdfParallelExecutorEngineBase< Derived, DataManager >::_KeepTask, VdfParallelExecutorEngineBase< Derived, DataManager >::_InputsTask, VdfParallelExecutorEngineBase< Derived, DataManager >::_ComputeTask, and VdfParallelExecutorEngineBase< Derived, DataManager >::_LeafTask< Callback >.
|
inline |
Decrement the reference count of child tasks that must complete before this task can proceed.
Definition at line 126 of file taskGraph.h.