summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread/qatomic_cxx11.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/thread/qatomic_cxx11.h')
-rw-r--r--src/corelib/thread/qatomic_cxx11.h18
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);