From cc8377064f41d3d8f9dc431a4d96af7aa4057523 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sat, 16 Sep 2023 08:52:31 -0500 Subject: [PATCH] Fixing thread lifetime issues in Radar Product Manager --- scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp index 29bbc724..cbeb0fb0 100644 --- a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp @@ -102,7 +102,7 @@ public: self, &RadarProductManager::NewDataAvailable); } - ~ProviderManager() = default; + ~ProviderManager() { threadPool_.join(); }; std::string name() const; @@ -179,6 +179,8 @@ public: // Lock other mutexes before destroying, ensure loading is complete std::unique_lock loadLevel2DataLock {loadLevel2DataMutex_}; std::unique_lock loadLevel3DataLock {loadLevel3DataMutex_}; + + threadPool_.join(); } RadarProductManager* self_;