|
Mixe for Privacy and Anonymity in the Internet
|
#include <cassert>#include <type_traits>#include <cerrno>#include <cstdint>#include <ctime>#include <atomic>#include <utility>Go to the source code of this file.
Classes | |
| class | weak_atomic< T > |
| class | spsc_sema::LightweightSemaphore |
Namespaces | |
| spsc_sema | |
Macros | |
| #define | AE_ARCH_UNKNOWN |
| #define | AE_UNUSED(x) ((void)x) |
| #define | AE_NO_TSAN |
| #define | AE_FORCEINLINE inline |
| #define | AE_ALIGN(x) __attribute__((aligned(x))) |
| #define | AE_USE_STD_ATOMIC_FOR_WEAK_ATOMIC |
Enumerations | |
| enum | memory_order { memory_order_relaxed , memory_order_acquire , memory_order_release , memory_order_acq_rel , memory_order_seq_cst , memory_order_sync = memory_order_seq_cst } |
Functions | |
| AE_FORCEINLINE void | compiler_fence (memory_order order) AE_NO_TSAN |
| AE_FORCEINLINE void | fence (memory_order order) AE_NO_TSAN |
| #define AE_ALIGN | ( | x | ) | __attribute__((aligned(x))) |
Definition at line 75 of file atomicops.h.
| #define AE_ARCH_UNKNOWN |
Definition at line 38 of file atomicops.h.
| #define AE_FORCEINLINE inline |
Definition at line 64 of file atomicops.h.
| #define AE_NO_TSAN |
Definition at line 53 of file atomicops.h.
| #define AE_UNUSED | ( | x | ) | ((void)x) |
Definition at line 43 of file atomicops.h.
| #define AE_USE_STD_ATOMIC_FOR_WEAK_ATOMIC |
Definition at line 220 of file atomicops.h.
| enum memory_order |
| Enumerator | |
|---|---|
| memory_order_relaxed | |
| memory_order_acquire | |
| memory_order_release | |
| memory_order_acq_rel | |
| memory_order_seq_cst | |
| memory_order_sync | |
Definition at line 82 of file atomicops.h.
| AE_FORCEINLINE void compiler_fence | ( | memory_order | order | ) |
Definition at line 191 of file atomicops.h.
References memory_order_acq_rel, memory_order_acquire, memory_order_relaxed, memory_order_release, and memory_order_seq_cst.
Referenced by ReaderWriterQueue::pop(), ReaderWriterQueue::try_dequeue(), and spsc_sema::LightweightSemaphore::waitWithPartialSpinning().
| AE_FORCEINLINE void fence | ( | memory_order | order | ) |
Definition at line 203 of file atomicops.h.
References memory_order_acq_rel, memory_order_acquire, memory_order_relaxed, memory_order_release, and memory_order_seq_cst.
Referenced by ReaderWriterQueue::inner_enqueue(), ReaderWriterQueue::peek(), ReaderWriterQueue::pop(), ReaderWriterQueue::ReaderWriterQueue(), ReaderWriterQueue::size_approx(), ReaderWriterQueue::try_dequeue(), and ReaderWriterQueue::~ReaderWriterQueue().