From 8310a2f0a9a4d15af589da948928181630d8f4bd Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Tue, 23 Aug 2022 16:27:14 +0200 Subject: qmljs: reduce used threads Change-Id: I8f27037d0cfefd65f1ac060e1505328ea705a670 Reviewed-by: Thomas Hartmann Reviewed-by: --- src/libs/qmljs/qmljsmodelmanagerinterface.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'src/libs/qmljs/qmljsmodelmanagerinterface.cpp') diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp index 444d429a4b..af0b975542 100644 --- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp +++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp @@ -111,6 +111,7 @@ ModelManagerInterface::ModelManagerInterface(QObject *parent) m_defaultImportPaths(environmentImportPaths()), m_pluginDumper(new PluginDumper(this)) { + m_threadPool.setMaxThreadCount(4); m_futureSynchronizer.setCancelOnWait(false); m_indexerDisabled = qEnvironmentVariableIsSet("QTC_NO_CODE_INDEXER"); @@ -326,6 +327,11 @@ Snapshot ModelManagerInterface::newestSnapshot() const return m_newestSnapshot; } +QThreadPool *ModelManagerInterface::threadPool() +{ + return &m_threadPool; +} + void ModelManagerInterface::updateSourceFiles(const QStringList &files, bool emitDocumentOnDiskChanged) { @@ -340,7 +346,8 @@ QFuture ModelManagerInterface::refreshSourceFiles(const QStringList &sourc if (sourceFiles.isEmpty()) return QFuture(); - QFuture result = Utils::runAsync(&ModelManagerInterface::parse, + QFuture result = Utils::runAsync(&m_threadPool, + &ModelManagerInterface::parse, workingCopyInternal(), sourceFiles, this, Dialect(Dialect::Qml), emitDocumentOnDiskChanged); @@ -368,9 +375,13 @@ QFuture ModelManagerInterface::refreshSourceFiles(const QStringList &sourc void ModelManagerInterface::fileChangedOnDisk(const QString &path) { - addFuture(Utils::runAsync(&ModelManagerInterface::parse, - workingCopyInternal(), QStringList(path), - this, Dialect(Dialect::AnyLanguage), true)); + addFuture(Utils::runAsync(&m_threadPool, + &ModelManagerInterface::parse, + workingCopyInternal(), + QStringList(path), + this, + Dialect(Dialect::AnyLanguage), + true)); } void ModelManagerInterface::removeFiles(const QStringList &files) @@ -1191,7 +1202,8 @@ void ModelManagerInterface::maybeScan(const PathsAndLanguages &importPaths) } if (pathToScan.length() >= 1) { - QFuture result = Utils::runAsync(&ModelManagerInterface::importScan, + QFuture result = Utils::runAsync(&m_threadPool, + &ModelManagerInterface::importScan, workingCopyInternal(), pathToScan, this, true, true, false); addFuture(result); -- cgit v1.2.1