diff options
Diffstat (limited to 'src/corelib/thread/qatomic_cxx11.h')
-rw-r--r-- | src/corelib/thread/qatomic_cxx11.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/corelib/thread/qatomic_cxx11.h b/src/corelib/thread/qatomic_cxx11.h index 2851bae73e..7386aee126 100644 --- a/src/corelib/thread/qatomic_cxx11.h +++ b/src/corelib/thread/qatomic_cxx11.h @@ -234,6 +234,18 @@ template <typename X> struct QAtomicOps } template <typename T> static inline + T loadRelaxed(const std::atomic<T> &_q_value) noexcept + { + return _q_value.load(std::memory_order_relaxed); + } + + template <typename T> static inline + T loadRelaxed(const volatile std::atomic<T> &_q_value) noexcept + { + return _q_value.load(std::memory_order_relaxed); + } + + template <typename T> static inline T loadAcquire(const std::atomic<T> &_q_value) noexcept { return _q_value.load(std::memory_order_acquire); @@ -252,6 +264,12 @@ template <typename X> struct QAtomicOps } template <typename T> static inline + void storeRelaxed(std::atomic<T> &_q_value, T newValue) noexcept + { + _q_value.store(newValue, std::memory_order_relaxed); + } + + template <typename T> static inline void storeRelease(std::atomic<T> &_q_value, T newValue) noexcept { _q_value.store(newValue, std::memory_order_release); |