#ifndef COMPLIB_SERVER_HEALTHCHECKER_HPP #define COMPLIB_SERVER_HEALTHCHECKER_HPP #include #include #define HEALTH_CHECK_TIMEOUT_MS 500 class HealthChecker { public: static HealthChecker &getInstance() { static HealthChecker instance; return instance; } HealthChecker(HealthChecker const &) = delete; void operator=(HealthChecker const &) = delete; void update(); private: HealthChecker(); [[noreturn]] void check_loop(); typedef std::chrono::steady_clock clock; std::thread check_thread; std::chrono::time_point last_update; bool stop_sent = false; }; #endif //COMPLIB_SERVER_HEALTHCHECKER_HPP