aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/languageclientplugin.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2018-09-13 15:31:00 +0200
committerDavid Schulz <david.schulz@qt.io>2018-09-20 12:37:48 +0000
commit5ef4530b8f30e3f33381292ef45fb0b358efcadc (patch)
tree955983738ab043b5a57133f65bc458c9920e0908 /src/plugins/languageclient/languageclientplugin.cpp
parent41dee83becb19aa5fadae8ef9469216bcab1440c (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.cpp12
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