aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas Hartmann <[email protected]>2022-03-16 14:20:43 +0100
committerThomas Hartmann <[email protected]>2022-03-16 13:55:17 +0000
commite9074792d2c0bcb1c3e46cf0cd05113b532d7ba7 (patch)
tree26178bc0f81f1a62e599180ae40827b9fae01ee0 /src
parent51b51f882615b2dab3d190411b2e0ff3db136d26 (diff)
QmlDesigner: Add mutex
Creating models can trigger this initialization potentially from multiple threads. Task-number: QDS-6429 Change-Id: I1e9f715c150e37e6381c3f4e94fe6de1aaec7556 Reviewed-by: Tim Jenssen <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
index 14f1982b72d..c49a8c5035b 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
@@ -32,9 +32,9 @@
#include <coreplugin/messagebox.h>
#include "pluginmanager/widgetpluginmanager.h"
-
#include <QDebug>
#include <QMessageBox>
+#include <QMutex>
enum {
debug = false
@@ -107,6 +107,7 @@ void MetaInfoPrivate::parseItemLibraryDescriptions()
using QmlDesigner::Internal::MetaInfoPrivate;
MetaInfo MetaInfo::s_global;
+QMutex s_lock;
QStringList MetaInfo::s_pluginDirs;
@@ -157,6 +158,8 @@ ItemLibraryInfo *MetaInfo::itemLibraryInfo() const
*/
MetaInfo MetaInfo::global()
{
+ QMutexLocker locker(&s_lock);
+
if (!s_global.m_p->m_isInitialized) {
s_global.m_p = QSharedPointer<MetaInfoPrivate>(new MetaInfoPrivate(&s_global));
s_global.m_p->initialize();