Don't alloc the remote ISO scan thread

This commit is contained in:
Henrik Rydgård committed 2025-04-30 15:53:55 +02:00
1 parent 31b64ae2e3
commit 6b4f32bb03
2 files changed
+10 -13

No files matched your search

+9 -12
View File
@@ -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);
}
+1 -1
View File
@@ -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;