task_pool¶
-
class task_pool¶
Task Pool that can run any callable object.
This class is general purpose thread pool that can launch task asyncronously. It is possible to get an asyncronous result of a task execution.
Public Functions
-
inline explicit task_pool(const unsigned int num_threads = std::thread::hardware_concurrency())¶
Constructor.
Creates a ssts::task_pool instance with the given number of threads.
- Parameters
num_threads – Number of threads that will be used in the underlying ssts::task_pool.
-
inline ~task_pool()¶
Destructor.
Destructs this after all joinable threads are terminated.
-
inline void stop()¶
Stop all threads.
Stop thread pool and join all joinable threads.
-
template<typename FunctionType>
inline auto run(FunctionType &&f, const std::optional<size_t> &task_hash = std::nullopt)¶ Run a callable object asynchronously.
Enqueue a new task with the given callable object. The enqueued task will run as soon as a thread is available. Returns the result of the asynchronous computation.
- Template Parameters
FunctionType – Types of the callable object.
- Parameters
f – Callable object.
- Returns
std::future task result
-
inline explicit task_pool(const unsigned int num_threads = std::thread::hardware_concurrency())¶