29#include <EASTL/fixed_vector.h>
30#include <EASTL/functional.h>
148 explicit Task(eastl::function<
void(
Task *)> &&fun) : m_runner(eastl::move(fun)) {}
172 void reject() { m_taskQueue->runCatch(); }
192 eastl::function<
void(
Task *)> m_runner;
211 eastl::fixed_vector<Task, 16> m_queue;
214 Task *m_parent =
nullptr;
215 unsigned m_index = 0;
216 bool m_running =
false;
The singleton GPU class.
Definition gpu.hh:88
The Task class.
Definition task.hh:140
Task & operator=(const Task &)=delete
Task & operator=(Task &&)=default
Task(const Task &)=delete
void reject()
Rejects this task.
Definition task.hh:172
Task(eastl::function< void(Task *)> &&fun)
Construct a new Task object.
Definition task.hh:148
void resolve()
Resolves this task.
Definition task.hh:162
void complete(bool success)
Resolves or rejects this task.
Definition task.hh:183
A task queue for processing tasks sequentially.
Definition task.hh:46
static Task DelayedTask(uint32_t delay, GPU &)
Creates a delayed task.
Definition task.cpp:101
Task schedule()
Schedules the task queue to another task queue.
Definition task.cpp:68
TaskQueue & then(eastl::function< void(Task *)> &&fun)
Definition task.hh:79
TaskQueue & startWith(Task &&)
Enqueues a task for execution.
Definition task.cpp:37
void run()
Runs the task queue.
Definition task.cpp:61
TaskQueue & butCatch(eastl::function< void(TaskQueue *)> &&)
Sets the exception handler.
Definition task.cpp:49
TaskQueue & startWith(eastl::function< void(Task *)> &&fun)
Definition task.hh:69
bool isRunning() const
Queries the status of the queue.
Definition task.hh:130
void reset()
Resets the queue.
Definition task.cpp:31
TaskQueue & then(Task &&)
Enqueues a task for execution.
Definition task.cpp:42
Definition cdrom-loader.hh:39
void uint32_t(classId, spec)