12#include "Templates/Invoke.h"
48 return TaskCount.load(std::memory_order_relaxed) != 0;
62 template<
typename TaskBodyType>
67 ETaskPriority
Priority = ETaskPriority::Default,
76 TaskCount.fetch_add(1, std::memory_order_acq_rel);
89 template<
typename TaskBodyType,
typename PrerequisitesCollectionType>
95 ETaskPriority
Priority = ETaskPriority::Default,
104 TaskCount.fetch_add(1, std::memory_order_acq_rel);
109 Task->SetPipe(*
this);
132 void ExecutionStarted();
133 void ExecutionFinished();
136 std::atomic<Private::FTaskBase*> LastTask{
nullptr };
137 std::atomic<uint64> TaskCount { 0 };
146 const TCHAR*
const DebugName;
#define check(expr)
Definition AssertionMacros.h:314
typename TInvokeResult< FuncType, ArgTypes... >::Type TInvokeResult_T
Definition Invoke.h:135
TSharedRef< InObjectType, InMode > MakeShared(InArgTypes &&... Args)
Definition SharedPointer.h:2009
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition SharedPointer.h:153
TTask< TInvokeResult_T< TaskBodyType > > Launch(const TCHAR *InDebugName, TaskBodyType &&TaskBody, PrerequisitesCollectionType &&Prerequisites, ETaskPriority Priority=ETaskPriority::Default, EExtendedTaskPriority ExtendedPriority=EExtendedTaskPriority::None, ETaskFlags Flags=ETaskFlags::None)
Definition Pipe.h:91
CORE_API bool WaitUntilEmpty(FTimespan Timeout=FTimespan::MaxValue())
Definition Pipe.cpp:58
~FPipe()
Definition Pipe.h:40
bool HasWork() const
Definition Pipe.h:46
CORE_API bool IsInContext() const
Definition Pipe.cpp:135
FORCENOINLINE const TCHAR * GetDebugName() const
Definition Pipe.h:140
TTask< TInvokeResult_T< TaskBodyType > > Launch(const TCHAR *InDebugName, TaskBodyType &&TaskBody, ETaskPriority Priority=ETaskPriority::Default, EExtendedTaskPriority ExtendedPriority=EExtendedTaskPriority::None, ETaskFlags Flags=ETaskFlags::None)
Definition Pipe.h:64
FPipe(const TCHAR *InDebugName)
Definition Pipe.h:35
Definition TaskPrivate.h:120
Definition TaskPrivate.h:925
Definition AnalyticsProviderLog.h:8
TStaticArray< Private::FTaskBase *, sizeof...(TaskTypes)> Prerequisites(TaskTypes &... Tasks)
Definition Task.h:365
ETaskFlags
Definition TaskPrivate.h:89
EExtendedTaskPriority
Definition TaskPrivate.h:60
Definition AdvancedWidgetsModule.cpp:13
static FTimespan MaxValue()
Definition Timespan.h:686