jaulib v1.3.0
Jau Support Library (C++, Java, ..)
Classes | Namespaces | Macros | Typedefs | Functions
ordered_atomic.hpp File Reference
#include <atomic>
#include <memory>
#include <jau/int_types.hpp>
Include dependency graph for ordered_atomic.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  jau::ordered_atomic< _Tp, _MO >
 std::atomic<T> type with predefined fixed std::memory_order, not allowing changing the memory model on usage and applying the set order to all operator. More...
 
class  jau::sc_atomic_critical
 This class provides a RAII-style Sequentially Consistent (SC) data race free (DRF) critical block. More...
 

Namespaces

namespace  jau
 __pack(...): Produces MSVC, clang and gcc compatible lead-in and -out macros.
 

Macros

#define CXX_ALWAYS_INLINE   inline __attribute__((__always_inline__))
 

Typedefs

typedef ordered_atomic< bool, std::memory_order_relaxed > jau::relaxed_atomic_bool
 Relaxed non-SC atomic integral scalar boolean. More...
 
typedef ordered_atomic< int, std::memory_order_relaxed > jau::relaxed_atomic_int
 Relaxed non-SC atomic integral scalar integer. More...
 
typedef ordered_atomic< int16_t, std::memory_order_relaxed > jau::relaxed_atomic_int16
 Relaxed non-SC atomic integral scalar int16_t. More...
 
typedef ordered_atomic< int32_t, std::memory_order_relaxed > jau::relaxed_atomic_int32
 Relaxed non-SC atomic integral scalar int32_t. More...
 
typedef ordered_atomic< int64_t, std::memory_order_relaxed > jau::relaxed_atomic_int64
 Relaxed non-SC atomic integral scalar int64_t. More...
 
typedef ordered_atomic< int8_t, std::memory_order_relaxed > jau::relaxed_atomic_int8
 Relaxed non-SC atomic integral scalar int8_t. More...
 
typedef ordered_atomic< jau::nsize_t, std::memory_order_relaxed > jau::relaxed_atomic_nsize_t
 Relaxed non-SC atomic integral scalar jau::nsize_t. More...
 
typedef ordered_atomic< std::size_t, std::memory_order_relaxed > jau::relaxed_atomic_size_t
 Relaxed non-SC atomic integral scalar size_t. More...
 
typedef ordered_atomic< jau::snsize_t, std::memory_order_relaxed > jau::relaxed_atomic_snsize_t
 Relaxed non-SC atomic integral scalar jau::snsize_t. More...
 
typedef ordered_atomic< ssize_t, std::memory_order_relaxed > jau::relaxed_atomic_ssize_t
 Relaxed non-SC atomic integral scalar ssize_t. More...
 
typedef ordered_atomic< uint16_t, std::memory_order_relaxed > jau::relaxed_atomic_uint16
 Relaxed non-SC atomic integral scalar uint16_t. More...
 
typedef ordered_atomic< uint32_t, std::memory_order_relaxed > jau::relaxed_atomic_uint32
 Relaxed non-SC atomic integral scalar uint32_t. More...
 
typedef ordered_atomic< uint64_t, std::memory_order_relaxed > jau::relaxed_atomic_uint64
 Relaxed non-SC atomic integral scalar uint64_t. More...
 
typedef ordered_atomic< uint8_t, std::memory_order_relaxed > jau::relaxed_atomic_uint8
 Relaxed non-SC atomic integral scalar uint8_t. More...
 
typedef ordered_atomic< bool, std::memory_order_seq_cst > jau::sc_atomic_bool
 SC atomic integral scalar boolean. More...
 
typedef ordered_atomic< int, std::memory_order_seq_cst > jau::sc_atomic_int
 SC atomic integral scalar integer. More...
 
typedef ordered_atomic< int16_t, std::memory_order_seq_cst > jau::sc_atomic_int16
 SC atomic integral scalar int16_t. More...
 
typedef ordered_atomic< int32_t, std::memory_order_seq_cst > jau::sc_atomic_int32
 SC atomic integral scalar int32_t. More...
 
typedef ordered_atomic< int64_t, std::memory_order_seq_cst > jau::sc_atomic_int64
 SC atomic integral scalar int64_t. More...
 
typedef ordered_atomic< int8_t, std::memory_order_seq_cst > jau::sc_atomic_int8
 SC atomic integral scalar int8_t. More...
 
typedef ordered_atomic< jau::nsize_t, std::memory_order_seq_cst > jau::sc_atomic_nsize_t
 SC atomic integral scalar jau::nsize_t. More...
 
typedef ordered_atomic< std::size_t, std::memory_order_seq_cst > jau::sc_atomic_size_t
 SC atomic integral scalar size_t. More...
 
typedef ordered_atomic< jau::snsize_t, std::memory_order_seq_cst > jau::sc_atomic_snsize_t
 SC atomic integral scalar jau::snsize_t. More...
 
typedef jau::ordered_atomic< ssize_t, std::memory_order_seq_cst > jau::sc_atomic_ssize_t
 SC atomic integral scalar ssize_t. More...
 
typedef ordered_atomic< uint16_t, std::memory_order_seq_cst > jau::sc_atomic_uint16
 SC atomic integral scalar uint16_t. More...
 
typedef ordered_atomic< uint32_t, std::memory_order_seq_cst > jau::sc_atomic_uint32
 SC atomic integral scalar uint32_t. More...
 
typedef ordered_atomic< uint64_t, std::memory_order_seq_cst > jau::sc_atomic_uint64
 SC atomic integral scalar uint64_t. More...
 
typedef ordered_atomic< uint8_t, std::memory_order_seq_cst > jau::sc_atomic_uint8
 SC atomic integral scalar uint8_t. More...
 

Functions

template<typename _Tp , std::memory_order _MO>
std::string jau::to_string (const ordered_atomic< _Tp, _MO > &ref)
 

Macro Definition Documentation

◆ CXX_ALWAYS_INLINE

#define CXX_ALWAYS_INLINE   inline __attribute__((__always_inline__))

Definition at line 37 of file ordered_atomic.hpp.