36 std::atomic<bool> &m_flag;
39 explicit AtomicBoolRAII (std::atomic<bool> &flag) : m_flag (flag)
41 m_flag.store (
true, std::memory_order_release);
44 ~AtomicBoolRAII () { m_flag.store (
false, std::memory_order_release); }
47 AtomicBoolRAII (
const AtomicBoolRAII &) =
delete;
48 AtomicBoolRAII &operator= (
const AtomicBoolRAII &) =
delete;
49 AtomicBoolRAII (AtomicBoolRAII &&) =
delete;
50 AtomicBoolRAII &operator= (AtomicBoolRAII &&) =
delete;