ThreadSchedule 2.2.0
Modern C++ thread management library
Loading...
Searching...
No Matches
threadschedule::WorkStealingDeque< T > Class Template Reference

#include <thread_pool.hpp>

Public Member Functions

 WorkStealingDeque (size_t capacity=DEFAULT_CAPACITY)
auto push (T &&item) -> bool
template<typename U = T, std::enable_if_t< std::is_copy_constructible_v< U >, int > = 0>
auto push (T const &item) -> bool
auto pop (T &item) -> bool
auto steal (T &item) -> bool
auto size () const -> size_t
auto empty () const -> bool
void clear ()
auto clear_and_count () -> size_t

Static Public Attributes

static constexpr size_t CACHE_LINE_SIZE = 64
static constexpr size_t DEFAULT_CAPACITY = 1024

Detailed Description

template<typename T>
class threadschedule::WorkStealingDeque< T >

Definition at line 332 of file thread_pool.hpp.

Constructor & Destructor Documentation

◆ WorkStealingDeque()

template<typename T>
threadschedule::WorkStealingDeque< T >::WorkStealingDeque ( size_t capacity = DEFAULT_CAPACITY)
inlineexplicit

Definition at line 360 of file thread_pool.hpp.

References DEFAULT_CAPACITY.

Member Function Documentation

◆ clear()

template<typename T>
void threadschedule::WorkStealingDeque< T >::clear ( )
inline

Definition at line 443 of file thread_pool.hpp.

◆ clear_and_count()

template<typename T>
auto threadschedule::WorkStealingDeque< T >::clear_and_count ( ) -> size_t
inlinenodiscard

Definition at line 450 of file thread_pool.hpp.

◆ empty()

template<typename T>
auto threadschedule::WorkStealingDeque< T >::empty ( ) const -> bool
inlinenodiscard

Definition at line 438 of file thread_pool.hpp.

References size().

◆ pop()

template<typename T>
auto threadschedule::WorkStealingDeque< T >::pop ( T & item) -> bool
inlinenodiscard

Definition at line 398 of file thread_pool.hpp.

◆ push() [1/2]

template<typename T>
auto threadschedule::WorkStealingDeque< T >::push ( T && item) -> bool
inlinenodiscard

Definition at line 365 of file thread_pool.hpp.

◆ push() [2/2]

template<typename T>
template<typename U = T, std::enable_if_t< std::is_copy_constructible_v< U >, int > = 0>
auto threadschedule::WorkStealingDeque< T >::push ( T const & item) -> bool
inlinenodiscard

Definition at line 382 of file thread_pool.hpp.

◆ size()

template<typename T>
auto threadschedule::WorkStealingDeque< T >::size ( ) const -> size_t
inlinenodiscard

Definition at line 431 of file thread_pool.hpp.

Referenced by empty().

◆ steal()

template<typename T>
auto threadschedule::WorkStealingDeque< T >::steal ( T & item) -> bool
inlinenodiscard

Definition at line 415 of file thread_pool.hpp.

Member Data Documentation

◆ CACHE_LINE_SIZE

template<typename T>
size_t threadschedule::WorkStealingDeque< T >::CACHE_LINE_SIZE = 64
staticconstexpr

Definition at line 335 of file thread_pool.hpp.

◆ DEFAULT_CAPACITY

template<typename T>
size_t threadschedule::WorkStealingDeque< T >::DEFAULT_CAPACITY = 1024
staticconstexpr

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