YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
yaclib::detail::fiber::AtomicBase< T > Class Template Reference

#include <atomic.hpp>

Inheritance diagram for yaclib::detail::fiber::AtomicBase< T >:
[legend]
Collaboration diagram for yaclib::detail::fiber::AtomicBase< T >:
[legend]

Public Member Functions

void store (T desired, std::memory_order) noexcept
 
void store (T desired, std::memory_order) volatile noexcept
 
load (std::memory_order) const noexcept
 
load (std::memory_order) const volatile noexcept
 
 operator T () const noexcept
 
 operator T () const volatile noexcept
 
exchange (T desired, std::memory_order) noexcept
 
exchange (T desired, std::memory_order) volatile noexcept
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order, std::memory_order) noexcept
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order, std::memory_order) volatile noexcept
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order) noexcept
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order) volatile noexcept
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order, std::memory_order) noexcept
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order, std::memory_order) volatile noexcept
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order) noexcept
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order) volatile noexcept
 
bool is_lock_free () const volatile noexcept
 
bool is_lock_free () const noexcept
 
- Public Member Functions inherited from yaclib::detail::fiber::AtomicWait< T >
 AtomicWait () noexcept=default
 
constexpr AtomicWait (T desired) noexcept
 
operator= (T desired) volatile noexcept
 
operator= (T desired) noexcept
 
bool is_lock_free () const volatile noexcept
 
bool is_lock_free () const noexcept
 

Static Public Attributes

static constexpr bool is_always_lock_free
 
- Static Public Attributes inherited from yaclib::detail::fiber::AtomicWait< T >
static constexpr bool is_always_lock_free = true
 

Protected Member Functions

bool CompareExchangeHelper (T &expected, T desired)
 

Protected Attributes

_value
 
- Protected Attributes inherited from yaclib::detail::fiber::AtomicWait< T >
_value
 

Detailed Description

template<typename T>
class yaclib::detail::fiber::AtomicBase< T >

Definition at line 10 of file atomic.hpp.

Member Function Documentation

◆ compare_exchange_strong() [1/4]

template<typename T >
bool yaclib::detail::fiber::AtomicBase< T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order   
)
inlinenoexcept

◆ compare_exchange_strong() [2/4]

template<typename T >
bool yaclib::detail::fiber::AtomicBase< T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order   
) volatile
inlinenoexcept

◆ compare_exchange_strong() [3/4]

template<typename T >
bool yaclib::detail::fiber::AtomicBase< T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order  ,
std::memory_order   
)
inlinenoexcept

◆ compare_exchange_strong() [4/4]

template<typename T >
bool yaclib::detail::fiber::AtomicBase< T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order  ,
std::memory_order   
) volatile
inlinenoexcept

◆ compare_exchange_weak() [1/4]

template<typename T >
bool yaclib::detail::fiber::AtomicBase< T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order   
)
inlinenoexcept

◆ compare_exchange_weak() [2/4]

template<typename T >
bool yaclib::detail::fiber::AtomicBase< T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order   
) volatile
inlinenoexcept

◆ compare_exchange_weak() [3/4]

template<typename T >
bool yaclib::detail::fiber::AtomicBase< T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order  ,
std::memory_order   
)
inlinenoexcept

◆ compare_exchange_weak() [4/4]

template<typename T >
bool yaclib::detail::fiber::AtomicBase< T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order  ,
std::memory_order   
) volatile
inlinenoexcept

◆ CompareExchangeHelper()

◆ exchange() [1/2]

template<typename T >
T yaclib::detail::fiber::AtomicBase< T >::exchange ( desired,
std::memory_order   
)
inlinenoexcept

◆ exchange() [2/2]

template<typename T >
T yaclib::detail::fiber::AtomicBase< T >::exchange ( desired,
std::memory_order   
) volatile
inlinenoexcept

◆ is_lock_free() [1/2]

template<typename T >
bool yaclib::detail::fiber::AtomicWait< T >::is_lock_free ( ) const
inlinenoexcept

Definition at line 29 of file atomic_wait.hpp.

◆ is_lock_free() [2/2]

template<typename T >
bool yaclib::detail::fiber::AtomicWait< T >::is_lock_free ( ) const volatile
inlinenoexcept

Definition at line 25 of file atomic_wait.hpp.

◆ load() [1/2]

template<typename T >
T yaclib::detail::fiber::AtomicBase< T >::load ( std::memory_order  ) const
inlinenoexcept

◆ load() [2/2]

template<typename T >
T yaclib::detail::fiber::AtomicBase< T >::load ( std::memory_order  ) const volatile
inlinenoexcept

Definition at line 28 of file atomic.hpp.

References yaclib::detail::fiber::AtomicBase< T >::_value.

◆ operator T() [1/2]

template<typename T >
yaclib::detail::fiber::AtomicBase< T >::operator T ( ) const
inlinenoexcept

Definition at line 32 of file atomic.hpp.

References yaclib::detail::fiber::AtomicBase< T >::load().

◆ operator T() [2/2]

template<typename T >
yaclib::detail::fiber::AtomicBase< T >::operator T ( ) const volatile
inlinenoexcept

Definition at line 35 of file atomic.hpp.

References yaclib::detail::fiber::AtomicBase< T >::load().

◆ store() [1/2]

template<typename T >
void yaclib::detail::fiber::AtomicBase< T >::store ( desired,
std::memory_order   
)
inlinenoexcept

◆ store() [2/2]

template<typename T >
void yaclib::detail::fiber::AtomicBase< T >::store ( desired,
std::memory_order   
) volatile
inlinenoexcept

Member Data Documentation

◆ _value

template<typename T >
T yaclib::detail::fiber::AtomicWait< T >::_value
protected

Definition at line 63 of file atomic_wait.hpp.

Referenced by yaclib::detail::fiber::AtomicBase< T >::CompareExchangeHelper(), yaclib::detail::fiber::AtomicBase< T >::exchange(), yaclib::detail::fiber::AtomicBase< T >::exchange(), yaclib::detail::fiber::AtomicFloatingBase< T, true >::fetch_add(), yaclib::detail::fiber::AtomicFloatingBase< T, true >::fetch_add(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::fetch_and(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::fetch_and(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::fetch_or(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::fetch_or(), yaclib::detail::fiber::AtomicFloatingBase< T, true >::fetch_sub(), yaclib::detail::fiber::AtomicFloatingBase< T, true >::fetch_sub(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::fetch_xor(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::fetch_xor(), yaclib::detail::fiber::AtomicBase< T >::load(), yaclib::detail::fiber::AtomicBase< T >::load(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator&=(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator&=(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator++(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator++(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator++(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator++(), yaclib::detail::fiber::AtomicFloatingBase< T, true >::operator+=(), yaclib::detail::fiber::AtomicFloatingBase< T, true >::operator+=(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator--(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator--(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator--(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator--(), yaclib::detail::fiber::AtomicFloatingBase< T, true >::operator-=(), yaclib::detail::fiber::AtomicFloatingBase< T, true >::operator-=(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator^=(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator^=(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator|=(), yaclib::detail::fiber::AtomicIntegralBase< T, true >::operator|=(), yaclib::detail::fiber::AtomicBase< T >::store(), and yaclib::detail::fiber::AtomicBase< T >::store().

◆ is_always_lock_free

template<typename T >
constexpr bool yaclib::detail::fiber::AtomicWait< T >::is_always_lock_free
staticconstexpr

Definition at line 33 of file atomic_wait.hpp.


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