src/zm_poll_thread.h
Rama master · réplica de lectura del repositorio original.
#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