diff --git a/daemon/src/sflthread.cpp b/daemon/src/sflthread.cpp index 30d9dba8a7555256e7230d93d13eff4c604d1e19..669714bf60548f6d8c35e7cec5306aef29ce71e5 100644 --- a/daemon/src/sflthread.cpp +++ b/daemon/src/sflthread.cpp @@ -32,8 +32,6 @@ #include "sflthread.h" #include "logger.h" -#define set_false_atomic(x) static_cast<void>(__sync_fetch_and_and(x, false)) - void* SFLThread::run_(void* data) { SFLThread *obj = static_cast<SFLThread*>(data); @@ -72,7 +70,7 @@ void SFLThread::start() void SFLThread::stop() { - set_false_atomic(&running_); + running_ = false; } void SFLThread::join() diff --git a/daemon/src/sflthread.h b/daemon/src/sflthread.h index 6fdeb2cead292d01f5f19ba8d50fbaf073025318..08c1c09011d3e3ac09f79be1636d9ab72400b173 100644 --- a/daemon/src/sflthread.h +++ b/daemon/src/sflthread.h @@ -33,6 +33,7 @@ #define __SFLTHREAD_H__ #include <pthread.h> +#include <atomic> class SFLThread { public: @@ -56,7 +57,7 @@ private: void mainloop_(); pthread_t thread_; - bool running_; + std::atomic<bool> running_; }; #endif // __SFLTHREAD_H__