diff options
Diffstat (limited to 'src/corelib/arch/qatomic_unix.cpp')
-rw-r--r-- | src/corelib/arch/qatomic_unix.cpp | 13 |
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; |