From 792caae0ca4beb0a2199c08c7192c9240f3d2de5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Thu, 2 Jun 2022 11:51:43 +0200 Subject: [PATCH] Follow-up of a47446574eb3f831907248dc841eb6f7684bbdb3 - Disable tbb::task_scheduler_observer in TBBLocalesSetter destructor. The base class wasn't disabling observing when tbb::task_scheduler_observer was destructed, which leads to undefined behavior. --- src/libslic3r/GCode.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index d856b1c7f6..d3310fe70a 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1550,7 +1550,7 @@ class TBBLocalesSetter : public tbb::task_scheduler_observer { public: TBBLocalesSetter() { this->observe(true); } - ~TBBLocalesSetter() override = default; + ~TBBLocalesSetter() override { this->observe(false); }; void on_scheduler_entry(bool is_worker) override { @@ -1562,7 +1562,7 @@ public: } private: - tbb::enumerable_thread_specific, tbb::ets_key_usage_type::ets_key_per_instance> m_is_locales_sets; + tbb::enumerable_thread_specific, tbb::ets_key_usage_type::ets_key_per_instance> m_is_locales_sets{false}; }; // Process all layers of all objects (non-sequential mode) with a parallel pipeline: