CmdBridge: Act on exceptions in Client::exit()

Change-Id: I93b82d2e559366b67e7a9069fd3ff371d37988ad
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Christian Kandeler
2024-12-12 17:13:46 +01:00
parent a221ce82ce
commit fabcf85508
2 changed files with 6 additions and 6 deletions

View File

@@ -244,11 +244,9 @@ Client::Client(const Utils::FilePath &remoteCmdBridgePath)
Client::~Client() Client::~Client()
{ {
if (d->thread->isRunning()) { if (d->thread->isRunning() && exit())
exit();
d->thread->wait(); d->thread->wait();
} }
}
expected_str<QFuture<Environment>> Client::start() expected_str<QFuture<Environment>> Client::start()
{ {
@@ -856,12 +854,14 @@ Utils::expected_str<QFuture<void>> Client::signalProcess(int pid, Utils::Control
"signalsuccess"); "signalsuccess");
} }
void Client::exit() bool Client::exit()
{ {
try { try {
createVoidJob(d.get(), QCborMap{{"Type", "exit"}}, "exitres")->waitForFinished(); createVoidJob(d.get(), QCborMap{{"Type", "exit"}}, "exitres")->waitForFinished();
return true;
} catch (...) { } catch (...) {
return; qCWarning(clientLog) << "Client::exit() caught exception";
return false;
} }
} }

View File

@@ -113,7 +113,7 @@ public:
Utils::expected_str<QFuture<void>> signalProcess(int pid, Utils::ControlSignal signal); Utils::expected_str<QFuture<void>> signalProcess(int pid, Utils::ControlSignal signal);
protected: protected:
void exit(); bool exit();
signals: signals:
void done(const Utils::ProcessResultData &resultData); void done(const Utils::ProcessResultData &resultData);