Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Task.cpp
Go to the documentation of this file.
1
2
3#include "Headers/Task.h"
5
6namespace Divide
7{
8
9 void Start( Task& task, TaskPool& pool, const TaskPriority priority, const DELEGATE<void>& onCompletionFunction )
10 {
12
13 if ( !pool.enqueue( task, priority, onCompletionFunction ) ) [[unlikely]]
14 {
15 Console::errorfn( LOCALE_STR( "TASK_SCHEDULE_FAIL" ), 1 );
16 Start( task, pool, TaskPriority::REALTIME, onCompletionFunction );
17 }
18 }
19
20 void Wait( const Task& task, TaskPool& pool )
21 {
22 pool.waitForTask( task );
23 }
24
25}; //namespace Divide
#define LOCALE_STR(X)
Definition: Localization.h:91
#define PROFILE_SCOPE_AUTO(CATEGORY)
Definition: Profiler.h:87
bool enqueue(Task &task, TaskPriority priority, const DELEGATE< void > &onCompletionFunction)
Definition: TaskPool.cpp:83
void waitForTask(const Task &task)
Definition: TaskPool.cpp:184
constexpr Optick::Category::Type Threading
Definition: Profiler.h:67
Handle console commands that start with a forward slash.
Definition: AIProcessor.cpp:7
DELEGATE_STD< Ret, Args... > DELEGATE
void Wait(const Task &task, TaskPool &pool)
Definition: Task.cpp:20
TaskPriority
Definition: Task.h:41
@ REALTIME
not threaded
void Start(Task &task, TaskPool &pool, TaskPriority priority=TaskPriority::DONT_CARE, const DELEGATE< void > &onCompletionFunction={})
Definition: Task.cpp:9
static NO_INLINE void errorfn(const char *format, T &&... args)