LCOV - code coverage report
Current view: top level - src/include/panoc-alm/util - atomic_stop_signal.hpp (source / functions) Hit Total Coverage
Test: ecee3ec3a495b05c61f077aa7a236b7e00601437 Lines: 5 7 71.4 %
Date: 2021-11-04 22:49:09 Functions: 3 5 60.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include <atomic>
       4             : 
       5             : namespace pa {
       6             : 
       7             : class AtomicStopSignal {
       8             :   public:
       9       20020 :     AtomicStopSignal()                         = default;
      10           0 :     AtomicStopSignal(const AtomicStopSignal &) : AtomicStopSignal() {}
      11             :     AtomicStopSignal &operator=(const AtomicStopSignal &) = delete;
      12           8 :     AtomicStopSignal(AtomicStopSignal &&) : AtomicStopSignal() {}
      13             :     AtomicStopSignal &operator=(AtomicStopSignal &&) { return *this; }
      14             : 
      15           0 :     void stop() { stop_flag.store(true, std::memory_order_relaxed); }
      16      200599 :     bool stop_requested() const {
      17      200599 :         return stop_flag.load(std::memory_order_relaxed);
      18             :     }
      19             : 
      20             :   private:
      21       10010 :     std::atomic<bool> stop_flag{false};
      22             : };
      23             : 
      24             : } // namespace pa

Generated by: LCOV version 1.15