diff --git a/scwx-qt/source/scwx/qt/view/level2_product_view.cpp b/scwx-qt/source/scwx/qt/view/level2_product_view.cpp index 01271814..53b9080c 100644 --- a/scwx-qt/source/scwx/qt/view/level2_product_view.cpp +++ b/scwx-qt/source/scwx/qt/view/level2_product_view.cpp @@ -290,11 +290,6 @@ void Level2ProductViewImpl::SetProduct(common::Level2Product product) } } -void Level2ProductView::Update() -{ - util::async([this]() { ComputeSweep(); }); -} - void Level2ProductView::UpdateColorTable() { if (p->momentDataBlock0_ == nullptr || // diff --git a/scwx-qt/source/scwx/qt/view/level2_product_view.hpp b/scwx-qt/source/scwx/qt/view/level2_product_view.hpp index a00dd0da..507e705d 100644 --- a/scwx-qt/source/scwx/qt/view/level2_product_view.hpp +++ b/scwx-qt/source/scwx/qt/view/level2_product_view.hpp @@ -39,7 +39,6 @@ public: void LoadColorTable(std::shared_ptr colorTable) override; void SelectElevation(float elevation) override; void SelectProduct(const std::string& productName) override; - void Update() override; common::RadarProductGroup GetRadarProductGroup() const override; std::string GetRadarProductName() const override; diff --git a/scwx-qt/source/scwx/qt/view/level3_product_view.cpp b/scwx-qt/source/scwx/qt/view/level3_product_view.cpp index c0a45ea2..5924ce35 100644 --- a/scwx-qt/source/scwx/qt/view/level3_product_view.cpp +++ b/scwx-qt/source/scwx/qt/view/level3_product_view.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include #include @@ -161,11 +160,6 @@ void Level3ProductView::LoadColorTable( UpdateColorTable(); } -void Level3ProductView::Update() -{ - util::async([this]() { ComputeSweep(); }); -} - void Level3ProductView::UpdateColorTable() { logger_->debug("UpdateColorTable()"); diff --git a/scwx-qt/source/scwx/qt/view/level3_product_view.hpp b/scwx-qt/source/scwx/qt/view/level3_product_view.hpp index c9d299eb..0ea023db 100644 --- a/scwx-qt/source/scwx/qt/view/level3_product_view.hpp +++ b/scwx-qt/source/scwx/qt/view/level3_product_view.hpp @@ -32,7 +32,6 @@ public: std::uint16_t color_table_max() const override; void LoadColorTable(std::shared_ptr colorTable) override; - void Update() override; common::RadarProductGroup GetRadarProductGroup() const override; std::string GetRadarProductName() const override; diff --git a/scwx-qt/source/scwx/qt/view/radar_product_view.cpp b/scwx-qt/source/scwx/qt/view/radar_product_view.cpp index 99cd78c6..a282e1f4 100644 --- a/scwx-qt/source/scwx/qt/view/radar_product_view.cpp +++ b/scwx-qt/source/scwx/qt/view/radar_product_view.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -36,6 +37,8 @@ public: } ~RadarProductViewImpl() = default; + boost::asio::thread_pool threadPool_ {1}; + bool initialized_; std::mutex sweepMutex_; @@ -118,6 +121,11 @@ void RadarProductView::SelectTime(std::chrono::system_clock::time_point time) p->selectedTime_ = time; } +void RadarProductView::Update() +{ + boost::asio::post(p->threadPool_, [this]() { ComputeSweep(); }); +} + bool RadarProductView::IsInitialized() const { return p->initialized_; diff --git a/scwx-qt/source/scwx/qt/view/radar_product_view.hpp b/scwx-qt/source/scwx/qt/view/radar_product_view.hpp index 04c9131d..8a589a48 100644 --- a/scwx-qt/source/scwx/qt/view/radar_product_view.hpp +++ b/scwx-qt/source/scwx/qt/view/radar_product_view.hpp @@ -51,7 +51,7 @@ public: virtual void SelectElevation(float elevation); virtual void SelectProduct(const std::string& productName) = 0; void SelectTime(std::chrono::system_clock::time_point time); - virtual void Update() = 0; + void Update(); bool IsInitialized() const;