20 #include <ripple/beast/clock/basic_seconds_clock.h>
34 class seconds_clock_thread
45 ~seconds_clock_thread();
46 seconds_clock_thread();
58 seconds_clock_thread::~seconds_clock_thread()
69 seconds_clock_thread::seconds_clock_thread()
70 : stop_{
false}, tp_{Clock::now().time_since_epoch().count()}
72 thread_ =
std::thread(&seconds_clock_thread::run,
this);
75 seconds_clock_thread::Clock::time_point
76 seconds_clock_thread::now()
78 return Clock::time_point{Clock::duration{tp_.load()}};
82 seconds_clock_thread::run()
89 auto now = Clock::now();
90 tp_ = now.time_since_epoch().count();
91 auto const when = floor<seconds>(now) + 1s;
92 if (cv_.
wait_until(lock, when, [
this] { return stop_; }))
99 basic_seconds_clock::time_point
100 basic_seconds_clock::now()
102 static seconds_clock_thread clk;