QDBusMetaTypeId: replace a volatile bool with an atomic int
Since there is no non-atomic data that is protected by 'initialized' anymore, the read from, and the store to, 'initialized' may now have relaxed memory ordering. Change-Id: I58004e782d9fd93122efb31fa5b30ee160646d99 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>bb10
parent
373a7277db
commit
7121bcca2d
|
|
@ -91,11 +91,11 @@ inline static void registerHelper(T * = 0)
|
|||
|
||||
void QDBusMetaTypeId::init()
|
||||
{
|
||||
static volatile bool initialized = false;
|
||||
static QBasicAtomicInt initialized = Q_BASIC_ATOMIC_INITIALIZER(false);
|
||||
|
||||
// reentrancy is not a problem since everything else is locked on their own
|
||||
// set the guard variable at the end
|
||||
if (!initialized) {
|
||||
if (!initialized.load()) {
|
||||
// register our types with QtCore (calling qMetaTypeId<T>() does this implicitly)
|
||||
(void)message();
|
||||
(void)argument();
|
||||
|
|
@ -135,7 +135,7 @@ void QDBusMetaTypeId::init()
|
|||
qDBusRegisterMetaType<QList<QDBusUnixFileDescriptor> >();
|
||||
#endif
|
||||
|
||||
initialized = true;
|
||||
initialized.store(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue