int QAtomicInt::fetchAndAdd(int valueToAdd) { int returnValue; qAtomicCriticalSection.lock(); returnValue = m_value; m_value += valueToAdd; qAtomicCriticalSection.unlock(); return returnValue; }
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndAddOrdered(volatile int *_q_value, int valueToAdd) { int returnValue; qAtomicCriticalSection.lock(); returnValue = *_q_value; *_q_value += valueToAdd; qAtomicCriticalSection.unlock(); return returnValue; }
Q_CORE_EXPORT int QBasicAtomicInt_fetchAndStoreOrdered(volatile int *_q_value, int newValue) { int returnValue; qAtomicCriticalSection.lock(); returnValue = *_q_value; *_q_value = newValue; qAtomicCriticalSection.unlock(); return returnValue; }
Q_CORE_EXPORT void *QBasicAtomicPointer_fetchAndAddOrdered(void * volatile *_q_value, qptrdiff valueToAdd) { void *returnValue; qAtomicCriticalSection.lock(); returnValue = *_q_value; *_q_value = reinterpret_cast<char *>(returnValue) + valueToAdd; qAtomicCriticalSection.unlock(); return returnValue; }
Q_CORE_EXPORT void *QBasicAtomicPointer_fetchAndStoreOrdered(void * volatile *_q_value, void *newValue) { void *returnValue; qAtomicCriticalSection.lock(); returnValue = *_q_value; *_q_value = newValue; qAtomicCriticalSection.unlock(); return returnValue; }
Q_CORE_EXPORT bool QBasicAtomicInt_testAndSetOrdered(volatile int *_q_value, int expectedValue, int newValue) { bool returnValue = false; qAtomicCriticalSection.lock(); if (*_q_value == expectedValue) { *_q_value = newValue; returnValue = true; } qAtomicCriticalSection.unlock(); return returnValue; }
bool QAtomicInt::testAndSet(int expectedValue,int newValue) { bool returnValue = false; qAtomicCriticalSection.lock(); if (m_value == expectedValue) { m_value = newValue; returnValue = true; } qAtomicCriticalSection.unlock(); return returnValue; }