From c67b2e84cc623d6ca92ac1f4933d5fe598f5efe6 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 15 Oct 2018 08:36:54 +0200 Subject: [PATCH] LanguageClient: Perform safe shutdown of clients This avoids running into a soft assert and is basically the common pattern used when shutting down the client. Change-Id: I9a2eea8d2ffe51f81d6bb78353606ef492628897 Reviewed-by: David Schulz --- src/plugins/languageclient/languageclientmanager.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index b3e034f1d7b..325f6e62241 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -214,8 +214,12 @@ void LanguageClientManager::shutdown() if (managerInstance->m_shuttingDown) return; managerInstance->m_shuttingDown = true; - for (auto interface : managerInstance->m_clients) - interface->shutdown(); + for (auto interface : managerInstance->m_clients) { + if (interface->reachable()) + interface->shutdown(); + else + deleteClient(interface); + } } LanguageClientManager *LanguageClientManager::instance()