7#ifndef PXR_EXEC_VDF_PARALLEL_TASK_WAITLIST_H
8#define PXR_EXEC_VDF_PARALLEL_TASK_WAITLIST_H
14#include "pxr/exec/vdf/api.h"
16#include "pxr/base/work/taskGraph.h"
18#include <tbb/concurrent_vector.h>
22PXR_NAMESPACE_OPEN_SCOPE
104 tbb::concurrent_vector<Node> _allocator;
107PXR_NAMESPACE_CLOSE_SCOPE
VDF_API bool WaitOn(HeadPtr *headPtr, WorkTaskGraph::BaseTask *successor)
Registers successor as waiting on the list denoted by headPtr.
VDF_API VdfParallelTaskWaitlist(size_t numReserved=0)
Constructor.
std::atomic< Node * > HeadPtr
This type denotes the head of an independent waitlist.
VDF_API bool CloseAndNotify(HeadPtr *headPtr, WorkTaskGraph *taskGraph)
Closes the list denoted by headPtr, and notifies any tasks that are waiting on this list.
VDF_API void Rewind()
Rewind the internal state and ensure that internally allocated memory does not grow beyond this point...
VdfParallelTaskWaitlist(const VdfParallelTaskWaitlist &)=delete
Noncopyable.
VDF_API ~VdfParallelTaskWaitlist()
Destructor.
Base class for a parallel task that emulates tbb::task (deprecated in the oneTBB version upgrade....
Instances of this class are used to spawn and wait on a directed graph of tasks, where tasks preserve...