![]() |
Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
The task manager creates all worker threads on initialisation, and manages the task queues. More...
#include <TaskManager.h>
Classes | |
| class | Impl |
| PImpl-ed implementation of the Task manager. More... | |
Public Member Functions | |
| TaskManager () | |
| ~TaskManager () | |
| TaskManager (const TaskManager &)=delete | |
| TaskManager (TaskManager &&)=delete | |
| TaskManager & | operator= (const TaskManager &)=delete |
| TaskManager & | operator= (TaskManager &&)=delete |
| void | ClearQueue () |
| Clears all tasks from the queue. More... | |
| size_t | GetNumberOfWorkers () const |
| template<typename T > | |
| Future< std::invoke_result_t< T > > | PushTask (T &&func, TaskPriority priority=TaskPriority::NORMAL) |
| Push a task to be executed. More... | |
Static Public Member Functions | |
| static void | Initialise () |
| static TaskManager & | Instance () |
Private Member Functions | |
| TaskManager (size_t numberOfWorkers) | |
| void | DoPushTask (std::function< void()> &&task, TaskPriority priority) |
Private Attributes | |
| const std::unique_ptr< Impl > | m |
Friends | |
| class | WorkerThread |
The task manager creates all worker threads on initialisation, and manages the task queues.
See implementation for additional comments.
| Threading::TaskManager::TaskManager | ( | ) |
|
default |
|
delete |
|
delete |
|
private |
| void Threading::TaskManager::ClearQueue | ( | ) |
Clears all tasks from the queue.
This blocks on started tasks.
|
private |
| size_t Threading::TaskManager::GetNumberOfWorkers | ( | ) | const |
|
static |
|
static |
|
delete |
|
delete |
|
inline |
Push a task to be executed.
|
friend |
|
private |