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 <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2018-10-15 08:36:54 +02:00
parent b30f82d3fb
commit c67b2e84cc

View File

@@ -214,8 +214,12 @@ void LanguageClientManager::shutdown()
if (managerInstance->m_shuttingDown) if (managerInstance->m_shuttingDown)
return; return;
managerInstance->m_shuttingDown = true; managerInstance->m_shuttingDown = true;
for (auto interface : managerInstance->m_clients) for (auto interface : managerInstance->m_clients) {
if (interface->reachable())
interface->shutdown(); interface->shutdown();
else
deleteClient(interface);
}
} }
LanguageClientManager *LanguageClientManager::instance() LanguageClientManager *LanguageClientManager::instance()