19 #include <glog/logging.h> 29 <<
"ThreadedRepeatingFunctionRunner::stop() should already have been " 30 <<
"called, since we are now in the Runner's destructor. This is " 31 <<
"because it means that its threads may be accessing object state " 32 <<
"that was already destroyed -- e.g. members that were declared " 33 <<
"after the ThreadedRepeatingFunctionRunner.";
59 std::chrono::milliseconds initialSleep) {
70 std::chrono::milliseconds duration)
noexcept {
71 using clock = std::chrono::steady_clock;
81 std::chrono::milliseconds initialSleep)
noexcept {
82 auto duration = initialSleep;
ThreadedRepeatingFunctionRunner()
bool waitFor(std::chrono::milliseconds duration) noexcept
std::chrono::steady_clock::time_point now()
constexpr detail::Map< Move > move
—— Concurrent Priority Queue Implementation ——
requires E e noexcept(noexcept(s.error(std::move(e))))
~ThreadedRepeatingFunctionRunner()
auto lock(Synchronized< D, M > &synchronized, Args &&...args)
void executeInLoop(RepeatingFn, std::chrono::milliseconds initialSleep) noexcept
bool setThreadName(std::thread::id tid, StringPiece name)
void add(std::string name, RepeatingFn f, std::chrono::milliseconds initialSleep=std::chrono::milliseconds(0))
std::condition_variable stopCv_
std::vector< std::thread > threads_