aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2018-10-17 08:07:03 +0200
committerDavid Schulz <david.schulz@qt.io>2018-10-17 07:01:49 +0000
commitc8822865299742050cb15cdf1cb1cb405def0702 (patch)
tree932813c7b89971047ca4d98178bddb48a9bbc848
parent253f71bfab511851033123c8619f5d2a1ca3a950 (diff)
ProjectExplorer: cancel MSVC tool chain detection on shutdown
Task-number: QTCREATORBUG-21329 Change-Id: I681757f1a2e77ecd7f766f25ab554d57473f1c6d Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.cpp5
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.h2
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp1
-rw-r--r--src/plugins/projectexplorer/toolchainmanager.cpp6
-rw-r--r--src/plugins/projectexplorer/toolchainmanager.h2
5 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index 8ed356a324..2bc98d19ac 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -1184,6 +1184,11 @@ bool MsvcToolChain::operator ==(const ToolChain &other) const
return m_varsBatArg == msvcTc->m_varsBatArg;
}
+void MsvcToolChain::cancelMsvcToolChainDetection()
+{
+ envModThreadPool()->clear();
+}
+
bool MsvcToolChainFactory::canRestore(const QVariantMap &data)
{
const Core::Id id = typeIdFromMap(data);
diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h
index 8cd39af2dc..eca4d425ac 100644
--- a/src/plugins/projectexplorer/msvctoolchain.h
+++ b/src/plugins/projectexplorer/msvctoolchain.h
@@ -79,6 +79,8 @@ public:
bool operator == (const ToolChain &) const override;
+ static void cancelMsvcToolChainDetection();
+
protected:
explicit MsvcToolChain(Core::Id typeId, const QString &name, const Abi &abi,
const QString &varsBat, const QString &varsBatArg,
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 56b30b3a99..50a5b2540c 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -1657,6 +1657,7 @@ ExtensionSystem::IPlugin::ShutdownFlag ProjectExplorerPlugin::aboutToShutdown()
disconnect(ModeManager::instance(), &ModeManager::currentModeChanged,
dd, &ProjectExplorerPluginPrivate::currentModeChanged);
ProjectTree::aboutToShutDown();
+ ToolChainManager::aboutToShutdown();
SessionManager::closeAllProjects();
dd->m_shuttingDown = true;
diff --git a/src/plugins/projectexplorer/toolchainmanager.cpp b/src/plugins/projectexplorer/toolchainmanager.cpp
index acaeb8b7d7..8694e2bdb0 100644
--- a/src/plugins/projectexplorer/toolchainmanager.cpp
+++ b/src/plugins/projectexplorer/toolchainmanager.cpp
@@ -27,6 +27,7 @@
#include "abi.h"
#include "kitinformation.h"
+#include "msvctoolchain.h"
#include "toolchain.h"
#include "toolchainsettingsaccessor.h"
@@ -248,4 +249,9 @@ bool ToolChainManager::isLanguageSupported(const Core::Id &id)
return Utils::contains(d->m_languages, Utils::equal(&LanguageDisplayPair::id, id));
}
+void ToolChainManager::aboutToShutdown()
+{
+ MsvcToolChain::cancelMsvcToolChainDetection();
+}
+
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/toolchainmanager.h b/src/plugins/projectexplorer/toolchainmanager.h
index 3fdcd98126..2e26431b84 100644
--- a/src/plugins/projectexplorer/toolchainmanager.h
+++ b/src/plugins/projectexplorer/toolchainmanager.h
@@ -74,6 +74,8 @@ public:
static QString displayNameOfLanguageId(const Core::Id &id);
static bool isLanguageSupported(const Core::Id &id);
+ static void aboutToShutdown();
+
void saveToolChains();
signals: