diff --git a/tools/simulators.cpp b/tools/simulators.cpp index a88bb64..c4085ac 100644 --- a/tools/simulators.cpp +++ b/tools/simulators.cpp @@ -75,6 +75,7 @@ std::vector Simulators::list_simulators() const Simulator_base* Simulators::invoke_active_simulator() { + std::lock_guard lock(m_mutex); if (this->m_simulators.empty()) { return nullptr; @@ -91,6 +92,7 @@ Simulator_base* Simulators::invoke_active_simulator() json Simulators::changed_UI_items() { + std::lock_guard lock(m_mutex); if (this->m_simulators.empty()) { return "{}"_json; diff --git a/tools/simulators.hpp b/tools/simulators.hpp index 3b373af..cd483db 100644 --- a/tools/simulators.hpp +++ b/tools/simulators.hpp @@ -1,6 +1,7 @@ #pragma once #include #include +#include #include "simulator_base.hpp" @@ -19,5 +20,6 @@ class Simulators { private: std::map> m_simulators; std::string m_current_simulator = ""; + std::mutex m_mutex; json m_before; }; \ No newline at end of file