diff options
author | David Schulz <david.schulz@qt.io> | 2018-09-13 15:31:00 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2018-09-20 12:37:48 +0000 |
commit | 5ef4530b8f30e3f33381292ef45fb0b358efcadc (patch) | |
tree | 955983738ab043b5a57133f65bc458c9920e0908 /src/plugins/languageclient/languageclientplugin.cpp | |
parent | 41dee83becb19aa5fadae8ef9469216bcab1440c (diff) |
LSP: use asynchronous shutdown for running servers
Change-Id: I3b1853177d07c98e051de0bc9f494389fbf4c104
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/plugins/languageclient/languageclientplugin.cpp')
-rw-r--r-- | src/plugins/languageclient/languageclientplugin.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/languageclient/languageclientplugin.cpp b/src/plugins/languageclient/languageclientplugin.cpp index 4fd3cedfcf8..53a0252592a 100644 --- a/src/plugins/languageclient/languageclientplugin.cpp +++ b/src/plugins/languageclient/languageclientplugin.cpp @@ -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 |