Changeset View
Changeset View
Standalone View
Standalone View
source/ps/TaskManager.cpp
Show First 20 Lines • Show All 193 Lines • ▼ Show 20 Lines | |||||
size_t TaskManager::GetNumberOfWorkers() const | size_t TaskManager::GetNumberOfWorkers() const | ||||
{ | { | ||||
return m->m_Workers.size(); | return m->m_Workers.size(); | ||||
} | } | ||||
void TaskManager::DoPushTask(std::function<void()>&& task, TaskPriority priority) | void TaskManager::DoPushTask(std::function<void()>&& task, TaskPriority priority) | ||||
{ | { | ||||
printf("Pushed task\n"); | |||||
m->PushTask(std::move(task), priority); | m->PushTask(std::move(task), priority); | ||||
} | } | ||||
void TaskManager::Impl::PushTask(std::function<void()>&& task, TaskPriority priority) | void TaskManager::Impl::PushTask(std::function<void()>&& task, TaskPriority priority) | ||||
{ | { | ||||
std::mutex& mutex = priority == TaskPriority::NORMAL ? m_GlobalMutex : m_GlobalLowPriorityMutex; | std::mutex& mutex = priority == TaskPriority::NORMAL ? m_GlobalMutex : m_GlobalLowPriorityMutex; | ||||
std::deque<QueueItem>& queue = priority == TaskPriority::NORMAL ? m_GlobalQueue : m_GlobalLowPriorityQueue; | std::deque<QueueItem>& queue = priority == TaskPriority::NORMAL ? m_GlobalQueue : m_GlobalLowPriorityQueue; | ||||
std::atomic<bool>& hasWork = priority == TaskPriority::NORMAL ? m_HasWork : m_HasLowPriorityWork; | std::atomic<bool>& hasWork = priority == TaskPriority::NORMAL ? m_HasWork : m_HasLowPriorityWork; | ||||
Show All 27 Lines | |||||
} | } | ||||
void TaskManager::Initialise() | void TaskManager::Initialise() | ||||
{ | { | ||||
if (!g_TaskManager) | if (!g_TaskManager) | ||||
g_TaskManager = std::make_unique<TaskManager>(); | g_TaskManager = std::make_unique<TaskManager>(); | ||||
} | } | ||||
void TaskManager::Shutdown() | |||||
{ | |||||
g_TaskManager.reset(); | |||||
} | |||||
TaskManager& TaskManager::Instance() | TaskManager& TaskManager::Instance() | ||||
{ | { | ||||
ENSURE(g_TaskManager); | ENSURE(g_TaskManager); | ||||
return *g_TaskManager; | return *g_TaskManager; | ||||
} | } | ||||
// Thread definition | // Thread definition | ||||
▲ Show 20 Lines • Show All 59 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator