list_node_init(&t->list);
}
-static bool list_node_initted(const struct list_node *n)
+static inline bool list_node_initted(const struct list_node *n)
{
return n->prev == n;
}
t->time = time_to_grains(timemono_add(time_mono(), rel));
-#if TIME_HAVE_MONOTONIC
- assert(t->time >= timers->base);
-#else
/* Added in the past? Treat it as imminent. */
if (t->time < timers->base)
t->time = timers->base;
-#endif
+
if (t->time < timers->first)
timers->first = t->time;
unsigned int off;
struct timer *t;
- assert(now >= timers->base);
+ /* This can happen without TIME_HAVE_MONOTONIC, but I also have
+ * a report of OpenBSD 6.8 under virtualbox doing this. */
+ if (now < timers->base) {
+ return NULL;
+ }
if (!timers->level[0]) {
if (list_empty(&timers->far))