12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /// \file AtomicInt.h
- /// \brief Compatibility subclass of QAtomicInt for supporting both Qt4 and Qt5
- #ifndef LMMS_ATOMIC_H
- #define LMMS_ATOMIC_H
- #include <QtCore/QAtomicInt>
- #if QT_VERSION < 0x050300
- class AtomicInt : public QAtomicInt
- {
- public:
- AtomicInt( int value = 0 ) :
- QAtomicInt( value )
- {
- }
- int fetchAndAndOrdered( int valueToAnd )
- {
- int value;
- do
- {
- value = (int)*this;
- }
- while( !testAndSetOrdered( value, value & valueToAnd ) );
- return value;
- }
- #if QT_VERSION >= 0x050000 && QT_VERSION < 0x050300
- operator int() const
- {
- return loadAcquire();
- }
- #endif
- };
- #else
- typedef QAtomicInt AtomicInt;
- #endif // QT_VERSION < 0x050300
- #endif
|