diff --git a/protocol/esta/sacn/universesender.cpp b/protocol/esta/sacn/universesender.cpp index 50fdbd7..61d8a86 100644 --- a/protocol/esta/sacn/universesender.cpp +++ b/protocol/esta/sacn/universesender.cpp @@ -36,7 +36,7 @@ namespace sACN { * @param source * @param universe */ -UniverseSender::UniverseSender(Source * source, Universe * universe) +UniverseSender::UniverseSender(Source *source, Universe *universe) : mSource(source) , mUniverse(universe) , terminated_resend(3) @@ -113,10 +113,7 @@ void UniverseSender::flush() */ void UniverseSender::kill() { - { - std::unique_lock lk_ctl(mtx_control); - enabled_ = false; - } + enabled_ = false; flush(); } diff --git a/protocol/esta/sacn/universesender.h b/protocol/esta/sacn/universesender.h index e222b88..237be78 100644 --- a/protocol/esta/sacn/universesender.h +++ b/protocol/esta/sacn/universesender.h @@ -26,6 +26,7 @@ #include "data.h" #include "dmp.h" #include "../dmx/universe.h" +#include #include #include #include @@ -81,9 +82,9 @@ private: /// > intervals of between 800mS and 1000mS. const std::chrono::milliseconds keep_alive_interval; - volatile bool enabled_; mutable std::shared_mutex mtx_control; mutable std::mutex mtx_thread_; + std::atomic enabled_; std::condition_variable_any request_; std::thread worker_; void loop_();