Sequoia
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
sequoia::concurrency::thread_pool< R, MultiPipeline > Class Template Reference

Supports either a single pipeline or a pipeline for each thread, together with task stealing. More...

#include <ConcurrencyModels.hpp>

Inheritance diagram for sequoia::concurrency::thread_pool< R, MultiPipeline >:
sequoia::concurrency::impl::queue_details< R, MultiChannel >

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_pooloperator= (const thread_pool &)=delete
 
thread_pooloperator= (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 ()
 

Detailed Description

template<class R, bool MultiPipeline = true>
class sequoia::concurrency::thread_pool< R, MultiPipeline >

Supports either a single pipeline or a pipeline for each thread, together with task stealing.


The documentation for this class was generated from the following file: