From 188d8592cea5da25875cc9ff4df1bcdf47a52699 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Sat, 8 Aug 2020 21:51:56 -0500 Subject: [PATCH] Join fan update thread before deleting fan tab --- qt/OpenRGBFanPage.cpp | 5 ++++- qt/OpenRGBFanPage.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/qt/OpenRGBFanPage.cpp b/qt/OpenRGBFanPage.cpp index fbc6aa373..99b9936ab 100644 --- a/qt/OpenRGBFanPage.cpp +++ b/qt/OpenRGBFanPage.cpp @@ -36,6 +36,7 @@ OpenRGBFanPage::OpenRGBFanPage(FanController *dev, QWidget *parent) : \*-----------------------------------------------------*/ device = dev; + fan_thread_running = true; FanUpdateThread = new std::thread(&OpenRGBFanPage::FanUpdateThreadFunction, this); QTimer *timer = new QTimer(this); @@ -57,12 +58,14 @@ OpenRGBFanPage::OpenRGBFanPage(FanController *dev, QWidget *parent) : OpenRGBFanPage::~OpenRGBFanPage() { + fan_thread_running = false; + FanUpdateThread->join(); delete ui; } void OpenRGBFanPage::FanUpdateThreadFunction() { - while(1) + while(fan_thread_running) { device->UpdateControl(); device->UpdateReading(); diff --git a/qt/OpenRGBFanPage.h b/qt/OpenRGBFanPage.h index 131148ad8..bcbbc35f3 100644 --- a/qt/OpenRGBFanPage.h +++ b/qt/OpenRGBFanPage.h @@ -36,6 +36,7 @@ private: Ui::OpenRGBFanPageUi *ui; FanController *device; + bool fan_thread_running; std::thread* FanUpdateThread; signals: