diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-05-27 10:03:00 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2022-05-31 17:23:09 +0200 |
commit | 0434e54b55d9a31c3b5331856bab639b7149058c (patch) | |
tree | 306dd5766f4dbb12c0242d09d1d8c742485f1620 /src/qml/qml/qqmlengine.cpp | |
parent | c98c2c08a5f926b67c40b6363274d23066bfe341 (diff) |
Fix race condition on QQmlEnginePrivate::qml_debugging_enabled
C++11 allows static dynamic initialization from different TUs to
happen concurrently, which means the QQmlDebuggingEnabler ctor must be
re-entrant and synchronized with other users of qml_debugging_enabled.
Thankfully, this is just a flag, so the fix is to simply make it
atomic<> and use relaxed loads and stores on it.
Pick-to: 6.3 6.2 5.15
Change-Id: I0305ab55be86a0e286016a3d1d97ee9bc0e28070
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlengine.cpp')
-rw-r--r-- | src/qml/qml/qqmlengine.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index 9123fc79e2..1a19c852b4 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -160,7 +160,7 @@ QT_BEGIN_NAMESPACE \endcode */ -bool QQmlEnginePrivate::qml_debugging_enabled = false; +Q_CONSTINIT std::atomic<bool> QQmlEnginePrivate::qml_debugging_enabled{false}; bool QQmlEnginePrivate::s_designerMode = false; bool QQmlEnginePrivate::designerMode() |