LSP: use asynchronous shutdown for running servers

Change-Id: I3b1853177d07c98e051de0bc9f494389fbf4c104
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2018-09-13 15:31:00 +02:00
parent 41dee83bec
commit 5ef4530b8f
4 changed files with 48 additions and 6 deletions

View File

@@ -25,6 +25,8 @@
#include "languageclientplugin.h"
#include "baseclient.h"
namespace LanguageClient {
bool LanguageClientPlugin::initialize(const QStringList & /*arguments*/, QString * /*errorString*/)
@@ -38,4 +40,14 @@ void LanguageClientPlugin::extensionsInitialized()
LanguageClientSettings::init();
}
ExtensionSystem::IPlugin::ShutdownFlag LanguageClientPlugin::aboutToShutdown()
{
LanguageClientManager::shutdown();
if (LanguageClientManager::clients().isEmpty())
return ExtensionSystem::IPlugin::SynchronousShutdown;
connect(LanguageClientManager::instance(), &LanguageClientManager::shutdownFinished,
this, &ExtensionSystem::IPlugin::asynchronousShutdownFinished);
return ExtensionSystem::IPlugin::AsynchronousShutdown;
}
} // namespace LanguageClient