From 4d9530deb7df61f239d5e873fd7f0edf6dfde365 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Tue, 13 Sep 2022 15:07:40 +0200 Subject: [PATCH] Prevent potential data races in arrange job --- src/slic3r/GUI/Jobs/ArrangeJob.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.cpp b/src/slic3r/GUI/Jobs/ArrangeJob.cpp index e75304d7a..cb26fae0b 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.cpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.cpp @@ -167,12 +167,16 @@ void ArrangeJob::process(Ctl &ctl) static const auto arrangestr = _u8L("Arranging"); ctl.update_status(0, arrangestr); - ctl.call_on_main_thread([this]{ prepare(); }).wait();; - arrangement::ArrangeParams params = get_arrange_params(m_plater); + arrangement::ArrangeParams params; + Points bedpts; + ctl.call_on_main_thread([this, ¶ms, &bedpts]{ + prepare(); + params = get_arrange_params(m_plater); + bedpts = get_bed_shape(*m_plater->config()); + }).wait();; auto count = unsigned(m_selected.size() + m_unprintable.size()); - Points bedpts = get_bed_shape(*m_plater->config()); params.stopcondition = [&ctl]() { return ctl.was_canceled(); };