GuardDogImpl::GuardDogImpl(Stats::Scope& stats_scope, const Server::Configuration::Watchdog& config,
events_to_actions_([&](const Server::Configuration::Watchdog& config) -> EventToActionsMap {
GuardDogImpl::GuardDogImpl(Stats::Scope& stats_scope, const Server::Configuration::Watchdog& config,
// Hold mutex_ for the duration of the step() function to ensure that watchdog still alive checks
// and test interlocks happen in the expected order. Calls to forceCheckForTest() should result in
// a full iteration of the step() function to process recent watchdog touches and monotonic time
if (watched_dog->last_alert_time_ && watched_dog->last_alert_time_.value() < last_checkin) {
WatchedDogPtr watched_dog = std::make_unique<WatchedDog>(stats_scope_, thread_name, new_watchdog);