diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 08d8a8583d0..48bb3901fe1 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -236,12 +236,9 @@ void LanguageClientManager::deleteClient(Client *client) managerInstance->m_clients.removeAll(client); for (QList &clients : managerInstance->m_clientsForSetting) clients.removeAll(client); - if (managerInstance->m_shuttingDown) { - delete client; - } else { - client->deleteLater(); + client->deleteLater(); + if (!managerInstance->m_shuttingDown) emit instance()->clientRemoved(client); - } } void LanguageClientManager::shutdown() diff --git a/src/plugins/languageclient/languageclientplugin.cpp b/src/plugins/languageclient/languageclientplugin.cpp index c8b4d134a0e..9271540b1c1 100644 --- a/src/plugins/languageclient/languageclientplugin.cpp +++ b/src/plugins/languageclient/languageclientplugin.cpp @@ -87,7 +87,7 @@ ExtensionSystem::IPlugin::ShutdownFlag LanguageClientPlugin::aboutToShutdown() QTC_ASSERT(LanguageClientManager::instance(), return ExtensionSystem::IPlugin::SynchronousShutdown); connect(LanguageClientManager::instance(), &LanguageClientManager::shutdownFinished, - this, &ExtensionSystem::IPlugin::asynchronousShutdownFinished); + this, &ExtensionSystem::IPlugin::asynchronousShutdownFinished, Qt::QueuedConnection); return ExtensionSystem::IPlugin::AsynchronousShutdown; }