Simple thread pool that executes tasks in a fixed number of worker threads. More...
#include <ThreadPool.h>
Public Types | |
using | Task = ThreadPoolTask |
Public Member Functions | |
Result | create (size_t workerThreads) |
Create a thread pool with the requested number of worker threads. More... | |
Result | destroy () |
Destroy the thread pool created previously with ThreadPool::create. More... | |
Result | queueTask (Task &task) |
Queue a task (that should not be already in use) More... | |
Result | waitForAllTasks () |
Blocks execution until all queued and pending tasks will be fully completed. More... | |
Result | waitForTask (Task &task) |
Blocks execution until all queued and pending tasks will be fully completed. More... | |
Simple thread pool that executes tasks in a fixed number of worker threads.
This class is not copyable / moveable due to it containing Mutex and Condition variable. Additionally, this class does not allocate any memory by itself, and expects the caller to supply SC::ThreadPool::Task objects.
Example:
Create a thread pool with the requested number of worker threads.
Result SC::ThreadPool::destroy | ( | ) |
Destroy the thread pool created previously with ThreadPool::create.
Result SC::ThreadPool::waitForAllTasks | ( | ) |
Blocks execution until all queued and pending tasks will be fully completed.
Blocks execution until all queued and pending tasks will be fully completed.