LSP: limit the number of server restart attempts

Change-Id: I65f845d44bcfb318f36d876c0806c7b48e8e09df
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2018-09-14 10:00:29 +02:00
parent 5ef4530b8f
commit fb058b850b
3 changed files with 8 additions and 4 deletions

View File

@@ -255,12 +255,11 @@ void LanguageClientManager::clientFinished(BaseClient *client)
constexpr int restartTimeoutS = 5;
const bool unexpectedFinish = client->state() != BaseClient::Shutdown
&& client->state() != BaseClient::ShutdownRequested;
if (unexpectedFinish && !m_shuttingDown) {
if (unexpectedFinish && !m_shuttingDown && client->reset()) {
removeMarks(client->id());
client->disconnect(this);
client->log(tr("Unexpectedly finished. Restarting in %1 seconds.").arg(restartTimeoutS),
Core::MessageManager::Flash);
client->reset();
QTimer::singleShot(restartTimeoutS * 1000, client, [client](){ startClient(client); });
} else {
deleteClient(client);