From 6b4f32bb030abe83d0f622c38f77c2bbc9706a1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Wed, 30 Apr 2025 15:52:59 +0200 Subject: [PATCH] Don't alloc the remote ISO scan thread --- UI/RemoteISOScreen.cpp | 21 +++++++++------------ UI/RemoteISOScreen.h | 2 +- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/UI/RemoteISOScreen.cpp b/UI/RemoteISOScreen.cpp index 0ab62bc76a..d4b4f7e63f 100644 --- a/UI/RemoteISOScreen.cpp +++ b/UI/RemoteISOScreen.cpp @@ -449,7 +449,7 @@ RemoteISOConnectScreen::RemoteISOConnectScreen() { scanCancelled = false; scanAborted = false; - scanThread_ = new std::thread([](RemoteISOConnectScreen *thiz) { + scanThread_ = std::thread([](RemoteISOConnectScreen *thiz) { SetCurrentThreadName("RemoteISOScan"); thiz->ExecuteScan(); }, this); @@ -466,9 +466,8 @@ RemoteISOConnectScreen::~RemoteISOConnectScreen() { break; } } - if (scanThread_->joinable()) - scanThread_->join(); - delete scanThread_; + if (scanThread_.joinable()) + scanThread_.join(); } void RemoteISOConnectScreen::CreateViews() { @@ -511,11 +510,10 @@ void RemoteISOConnectScreen::update() { status_ = ScanStatus::LOADING; // Let's reuse scanThread_. - if (scanThread_->joinable()) - scanThread_->join(); - delete scanThread_; + if (scanThread_.joinable()) + scanThread_.join(); statusMessage_.clear(); - scanThread_ = new std::thread([](RemoteISOConnectScreen *thiz) { + scanThread_ = std::thread([](RemoteISOConnectScreen *thiz) { thiz->ExecuteLoad(); }, this); break; @@ -530,11 +528,10 @@ void RemoteISOConnectScreen::update() { status_ = ScanStatus::SCANNING; nextRetry_ = 0.0; - if (scanThread_->joinable()) - scanThread_->join(); - delete scanThread_; + if (scanThread_.joinable()) + scanThread_.join(); statusMessage_.clear(); - scanThread_ = new std::thread([](RemoteISOConnectScreen *thiz) { + scanThread_ = std::thread([](RemoteISOConnectScreen *thiz) { thiz->ExecuteScan(); }, this); } diff --git a/UI/RemoteISOScreen.h b/UI/RemoteISOScreen.h index 1913950f17..a7a15c9e88 100644 --- a/UI/RemoteISOScreen.h +++ b/UI/RemoteISOScreen.h @@ -81,7 +81,7 @@ protected: ScanStatus status_ = ScanStatus::SCANNING; std::string statusMessage_; double nextRetry_ = 0.0; - std::thread *scanThread_; + std::thread scanThread_; std::mutex statusLock_; std::string host_; int port_ = -1;