From c819c90368c43e965d9018bbc6bc80ed4ca83c40 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 20 Jan 2022 09:48:54 +0100 Subject: [PATCH] SshDeviceProcess: don't connect to stubStopped, it's no-op After 479c39300945d5263e20adf3b29377153b688c78 the connection to ConsoleProcess::stubStopped() became no-op, since when finished() signal is emitted we are disconnecting from console process signals inside setState(). In case when the socket of console process got disconnected while the process was still running, we are emitting finished() signal prior to stubStopped() (when m_appPid != 0 or m_hInferior != nullptr, otherwise it had to be emitted earlier), so the stubStopped is also no-op in this case. Amends 479c39300945d5263e20adf3b29377153b688c78 Change-Id: I75189b9476281413c8a206de78b9008f9ee08a25 Reviewed-by: hjk --- src/libs/utils/consoleprocess.cpp | 3 +-- src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/libs/utils/consoleprocess.cpp b/src/libs/utils/consoleprocess.cpp index 19fd1d831d9..6362eca4f52 100644 --- a/src/libs/utils/consoleprocess.cpp +++ b/src/libs/utils/consoleprocess.cpp @@ -862,9 +862,8 @@ void ConsoleProcess::stubExited() d->m_stubPid = 0; delete d->m_tempFile; d->m_tempFile = nullptr; - if (d->m_appPid) { + if (d->m_appPid) finish(-1, QProcess::CrashExit); - } #endif emit stubStopped(); } diff --git a/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp b/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp index 07d5fbf519b..e09f4bec72d 100644 --- a/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp +++ b/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp @@ -199,8 +199,6 @@ void SshDeviceProcess::handleConnected() this, &SshDeviceProcess::handleProcessStarted); connect(&d->consoleProcess, &ConsoleProcess::finished, this, [this] { handleProcessFinished(d->consoleProcess.errorString()); }); - connect(&d->consoleProcess, &ConsoleProcess::stubStopped, - this, [this] { handleProcessFinished(d->consoleProcess.errorString()); }); d->consoleProcess.setAbortOnMetaChars(false); d->consoleProcess.setSettings(Core::ICore::settings()); d->consoleProcess.setCommand(d->process->fullLocalCommandLine());