summaryrefslogtreecommitdiffstats
path: root/src/corelib/arch/qatomic_unix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/arch/qatomic_unix.cpp')
-rw-r--r--src/corelib/arch/qatomic_unix.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/corelib/arch/qatomic_unix.cpp b/src/corelib/arch/qatomic_unix.cpp
index 4acf43d6a5..7a5c48c235 100644
--- a/src/corelib/arch/qatomic_unix.cpp
+++ b/src/corelib/arch/qatomic_unix.cpp
@@ -65,6 +65,19 @@ bool QAtomicOps<int>::testAndSetRelaxed(int &_q_value, int expectedValue, int ne
}
Q_CORE_EXPORT
+bool QAtomicOps<long long>::testAndSetRelaxed(Type &_q_value, Type expectedValue, Type newValue) Q_DECL_NOTHROW
+{
+ bool returnValue = false;
+ pthread_mutex_lock(&qAtomicMutex);
+ if (_q_value == expectedValue) {
+ _q_value = newValue;
+ returnValue = true;
+ }
+ pthread_mutex_unlock(&qAtomicMutex);
+ return returnValue;
+}
+
+Q_CORE_EXPORT
bool QAtomicOps<void *>::testAndSetRelaxed(void *&_q_value, void *expectedValue, void *newValue) Q_DECL_NOTHROW
{
bool returnValue = false;