diff options
author | David Schulz <david.schulz@qt.io> | 2018-10-17 08:07:03 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2018-10-17 07:01:49 +0000 |
commit | c8822865299742050cb15cdf1cb1cb405def0702 (patch) | |
tree | 932813c7b89971047ca4d98178bddb48a9bbc848 | |
parent | 253f71bfab511851033123c8619f5d2a1ca3a950 (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.cpp | 5 | ||||
-rw-r--r-- | src/plugins/projectexplorer/msvctoolchain.h | 2 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projectexplorer.cpp | 1 | ||||
-rw-r--r-- | src/plugins/projectexplorer/toolchainmanager.cpp | 6 | ||||
-rw-r--r-- | src/plugins/projectexplorer/toolchainmanager.h | 2 |
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: |