Add Task::WaitAll with a span of tasks and wrap around profiler macro

This commit is contained in:
Wojtek Figat
2025-01-03 01:05:56 +01:00
parent 3151e47722
commit 1e262b69cc
2 changed files with 22 additions and 7 deletions

View File

@@ -7,6 +7,7 @@
#include "Engine/Core/Types/DateTime.h"
#include "Engine/Core/Collections/Array.h"
#include "Engine/Core/Math/Math.h"
#include "Engine/Core/Types/Span.h"
#include "Engine/Profiler/ProfilerCPU.h"
void Task::Start()
@@ -72,6 +73,17 @@ bool Task::Wait(double timeoutMilliseconds) const
return true;
}
bool Task::WaitAll(const Span<Task*>& tasks, double timeoutMilliseconds)
{
PROFILE_CPU();
for (int32 i = 0; i < tasks.Length(); i++)
{
if (tasks[i]->Wait())
return true;
}
return false;
}
Task* Task::ContinueWith(Task* task)
{
ASSERT(task != nullptr && task != this);