Mixes for Privacy and Anonymity in the Internet
|
Public Member Functions | |
AE_NO_TSAN | weak_atomic () |
template<typename U > | |
AE_NO_TSAN | weak_atomic (U &&x) |
AE_NO_TSAN | weak_atomic (weak_atomic const &other) |
AE_NO_TSAN | weak_atomic (weak_atomic &&other) |
AE_FORCEINLINE | operator T () const AE_NO_TSAN |
template<typename U > | |
AE_FORCEINLINE weak_atomic const & | operator= (U &&x) AE_NO_TSAN |
AE_FORCEINLINE weak_atomic const & | operator= (weak_atomic const &other) AE_NO_TSAN |
AE_FORCEINLINE T | load () const AE_NO_TSAN |
AE_FORCEINLINE T | fetch_add_acquire (T increment) AE_NO_TSAN |
AE_FORCEINLINE T | fetch_add_release (T increment) AE_NO_TSAN |
Private Attributes | |
std::atomic< T > | value |
AE_NO_TSAN weak_atomic< T >::weak_atomic | ( | ) |
AE_NO_TSAN weak_atomic< T >::weak_atomic | ( | weak_atomic< T > const & | other | ) |
AE_NO_TSAN weak_atomic< T >::weak_atomic | ( | weak_atomic< T > && | other | ) |
AE_FORCEINLINE T weak_atomic< T >::fetch_add_acquire | ( | T | increment | ) |
References memory_order_acquire, and weak_atomic< T >::value.
Referenced by spsc_sema::LightweightSemaphore::tryWait(), and spsc_sema::LightweightSemaphore::waitWithPartialSpinning().
AE_FORCEINLINE T weak_atomic< T >::fetch_add_release | ( | T | increment | ) |
References memory_order_release, and weak_atomic< T >::value.
Referenced by spsc_sema::LightweightSemaphore::signal(), and spsc_sema::LightweightSemaphore::waitWithPartialSpinning().
AE_FORCEINLINE T weak_atomic< T >::load | ( | ) | const |
References memory_order_relaxed, and weak_atomic< T >::value.
Referenced by spsc_sema::LightweightSemaphore::availableApprox(), ReaderWriterQueue::inner_enqueue(), weak_atomic< ReaderWriterQueue::Block * >::operator ReaderWriterQueue::Block *(), ReaderWriterQueue::peek(), ReaderWriterQueue::pop(), ReaderWriterQueue::size_approx(), ReaderWriterQueue::try_dequeue(), spsc_sema::LightweightSemaphore::tryWait(), and spsc_sema::LightweightSemaphore::waitWithPartialSpinning().
AE_FORCEINLINE weak_atomic< T >::operator T | ( | ) | const |
AE_FORCEINLINE weak_atomic const& weak_atomic< T >::operator= | ( | U && | x | ) |
References memory_order_relaxed, and weak_atomic< T >::value.
AE_FORCEINLINE weak_atomic const& weak_atomic< T >::operator= | ( | weak_atomic< T > const & | other | ) |
References memory_order_relaxed, and weak_atomic< T >::value.
|
private |