Ctrl K
ComunidadGuías…

src/zm_poll_thread.h

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#ifndef ZM_POLL_THREAD_H
#define ZM_POLL_THREAD_H

#include <atomic>
#include <condition_variable>
#include <memory>
#include <mutex>
#include <thread>

class Monitor;

class PollThread {
 public:
  explicit PollThread(Monitor *monitor);
  ~PollThread();
  PollThread(PollThread &rhs) = delete;
  PollThread(PollThread &&rhs) = delete;

  void Start();
  void Stop();
  bool Stopped() const { return terminate_; }

 private:
  void Run();

  Monitor *monitor_;
  std::atomic<bool> terminate_;
  std::mutex mutex_;
  std::condition_variable cv_;
  std::thread thread_;
};

#endif