Sequoia
|
Supports either a single pipeline or a pipeline for each thread, together with task stealing. More...
#include <ConcurrencyModels.hpp>
Public Types | |
using | return_type = R |
Public Member Functions | |
thread_pool (const std::size_t numThreads) | |
thread_pool (const std::size_t numThreads, const std::size_t pushCycles=46) | |
thread_pool (const thread_pool &)=delete | |
thread_pool (thread_pool &&)=delete | |
thread_pool & | operator= (const thread_pool &)=delete |
thread_pool & | operator= (thread_pool &&)=delete |
template<std::invocable Fn> requires std::is_convertible_v<std::invoke_result_t<Fn>, R> && std::move_constructible<Fn> | |
std::future< R > | push (Fn fn) |
template<class Fn , class... Args> requires std::invocable<Fn, Args...> && std::is_convertible_v<std::invoke_result_t<Fn, Args...>, R> && std::move_constructible<Fn> && (std::move_constructible<Args> && ...) | |
std::future< R > | push (Fn fn, Args... args) |
void | join () |
Supports either a single pipeline or a pipeline for each thread, together with task stealing.