}
usec_t watchdog_runtime_wait(void) {
- usec_t rtwait, ntime;
if (!timestamp_is_set(watchdog_timeout))
return USEC_INFINITY;
/* Sleep half the watchdog timeout since the last successful ping at most */
if (timestamp_is_set(watchdog_last_ping)) {
- ntime = now(clock_boottime_or_monotonic());
+ usec_t ntime = now(clock_boottime_or_monotonic());
+
assert(ntime >= watchdog_last_ping);
- rtwait = usec_sub_unsigned(watchdog_last_ping + (watchdog_timeout / 2), ntime);
- } else
- rtwait = watchdog_timeout / 2;
+ return usec_sub_unsigned(watchdog_last_ping + (watchdog_timeout / 2), ntime);
+ }
- return rtwait;
+ return watchdog_timeout / 2;
}
int watchdog_ping(void) {