From fabcf8550822cdaed9e0d59f470fa4685eea843e Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 12 Dec 2024 17:13:46 +0100 Subject: [PATCH] CmdBridge: Act on exceptions in Client::exit() Change-Id: I93b82d2e559366b67e7a9069fd3ff371d37988ad Reviewed-by: Marcus Tillmanns --- src/libs/gocmdbridge/client/cmdbridgeclient.cpp | 10 +++++----- src/libs/gocmdbridge/client/cmdbridgeclient.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/libs/gocmdbridge/client/cmdbridgeclient.cpp b/src/libs/gocmdbridge/client/cmdbridgeclient.cpp index 754aac2251c..51f75c43f8b 100644 --- a/src/libs/gocmdbridge/client/cmdbridgeclient.cpp +++ b/src/libs/gocmdbridge/client/cmdbridgeclient.cpp @@ -244,10 +244,8 @@ Client::Client(const Utils::FilePath &remoteCmdBridgePath) Client::~Client() { - if (d->thread->isRunning()) { - exit(); + if (d->thread->isRunning() && exit()) d->thread->wait(); - } } expected_str> Client::start() @@ -856,12 +854,14 @@ Utils::expected_str> Client::signalProcess(int pid, Utils::Control "signalsuccess"); } -void Client::exit() +bool Client::exit() { try { createVoidJob(d.get(), QCborMap{{"Type", "exit"}}, "exitres")->waitForFinished(); + return true; } catch (...) { - return; + qCWarning(clientLog) << "Client::exit() caught exception"; + return false; } } diff --git a/src/libs/gocmdbridge/client/cmdbridgeclient.h b/src/libs/gocmdbridge/client/cmdbridgeclient.h index 1d6556d3234..07302131878 100644 --- a/src/libs/gocmdbridge/client/cmdbridgeclient.h +++ b/src/libs/gocmdbridge/client/cmdbridgeclient.h @@ -113,7 +113,7 @@ public: Utils::expected_str> signalProcess(int pid, Utils::ControlSignal signal); protected: - void exit(); + bool exit(); signals: void done(const Utils::ProcessResultData &resultData);