Lines 178-185
struct QBasicAtomicPointer
Link Here
|
178 |
#endif // Q_SPECIALIZED_QATOMIC |
178 |
#endif // Q_SPECIALIZED_QATOMIC |
179 |
|
179 |
|
180 |
template <typename T> |
180 |
template <typename T> |
|
|
181 |
#if defined(QT_MOC) || defined(QT_BUILD_QMAKE) || defined(QT_UIC) |
182 |
inline T qAtomicSetPtr(T *ptr, T newval) |
183 |
{ T ret = *ptr; *ptr = newval; return ret; } |
184 |
#else |
181 |
inline T qAtomicSetPtr(volatile T *ptr, T newval) |
185 |
inline T qAtomicSetPtr(volatile T *ptr, T newval) |
182 |
{ return static_cast<T>(q_atomic_set_ptr(ptr, newval)); } |
186 |
{ return static_cast<T>(q_atomic_set_ptr(ptr, newval)); } |
|
|
187 |
#endif |
183 |
|
188 |
|
184 |
// High-level atomic integer operations |
189 |
// High-level atomic integer operations |
185 |
class QAtomic : public QBasicAtomic |
190 |
class QAtomic : public QBasicAtomic |