From 267a55435ce400d60d37253f5b801f17695970dc Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 8 Sep 2021 12:46:36 +0200 Subject: [PATCH] Remove process only when FailedToStart error occurred Otherwise don't remove it yet, as many usages of QtcProcess expect that we are still going to receive Finished signal after an error occurred. Change-Id: I8cae402bc2ef5064bbae964217f49028a31a73af Reviewed-by: hjk --- src/tools/processlauncher/launchersockethandler.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/tools/processlauncher/launchersockethandler.cpp b/src/tools/processlauncher/launchersockethandler.cpp index b29998856b2..e803d182b60 100644 --- a/src/tools/processlauncher/launchersockethandler.cpp +++ b/src/tools/processlauncher/launchersockethandler.cpp @@ -144,7 +144,11 @@ void LauncherSocketHandler::handleProcessError() packet.error = proc->error(); packet.errorString = proc->errorString(); sendPacket(packet); - removeProcess(proc->token()); + + // In case of FailedToStart we won't receive finished signal, so we remove the process here. + // For all other errors we should expect corresponding finished signal to appear. + if (proc->error() == QProcess::FailedToStart) + removeProcess(proc->token()); } void LauncherSocketHandler::handleProcessStarted()