diff --git a/src/slic3r/GUI/Jobs/BoostThreadWorker.cpp b/src/slic3r/GUI/Jobs/BoostThreadWorker.cpp index a6eee28ac..8475f0537 100644 --- a/src/slic3r/GUI/Jobs/BoostThreadWorker.cpp +++ b/src/slic3r/GUI/Jobs/BoostThreadWorker.cpp @@ -6,10 +6,10 @@ namespace Slic3r { namespace GUI { void BoostThreadWorker::WorkerMessage::deliver(BoostThreadWorker &runner) { - switch(MsgType(m_data.index())) { + switch(MsgType(get_type())) { case Empty: break; case Status: { - StatusInfo info = std::get(m_data); + auto info = boost::get(m_data); if (runner.get_pri()) { runner.get_pri()->set_progress(info.status); runner.get_pri()->set_status_text(info.msg.c_str()); @@ -17,7 +17,7 @@ void BoostThreadWorker::WorkerMessage::deliver(BoostThreadWorker &runner) break; } case Finalize: { - JobEntry& entry = std::get(m_data); + auto& entry = boost::get(m_data); entry.job->finalize(entry.canceled, entry.eptr); // Unhandled exceptions are rethrown without mercy. @@ -27,7 +27,7 @@ void BoostThreadWorker::WorkerMessage::deliver(BoostThreadWorker &runner) break; } case MainThreadCall: { - MainThreadCallData &calldata = std::get(m_data); + auto &calldata = boost::get(m_data); calldata.fn(); calldata.promise.set_value(); diff --git a/src/slic3r/GUI/Jobs/BoostThreadWorker.hpp b/src/slic3r/GUI/Jobs/BoostThreadWorker.hpp index 1775a90bd..908ebbb05 100644 --- a/src/slic3r/GUI/Jobs/BoostThreadWorker.hpp +++ b/src/slic3r/GUI/Jobs/BoostThreadWorker.hpp @@ -1,7 +1,7 @@ #ifndef BOOSTTHREADWORKER_HPP #define BOOSTTHREADWORKER_HPP -#include +#include #include "Worker.hpp" @@ -40,10 +40,12 @@ class BoostThreadWorker : public Worker, private Job::Ctl std::promise promise; }; + struct EmptyMessage {}; + class WorkerMessage { enum MsgType { Empty, Status, Finalize, MainThreadCall }; - std::variant m_data; + boost::variant m_data; public: WorkerMessage() = default; @@ -53,7 +55,7 @@ class BoostThreadWorker : public Worker, private Job::Ctl WorkerMessage(JobEntry &&entry) : m_data{std::move(entry)} {} WorkerMessage(MainThreadCallData fn) : m_data{std::move(fn)} {} - int get_type () const { return m_data.index(); } + int get_type () const { return m_data.which(); } void deliver(BoostThreadWorker &runner); };