aboutsummaryrefslogtreecommitdiff
path: root/lib/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/timer.c')
-rw-r--r--lib/timer.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/timer.c b/lib/timer.c
index b640a7be..1c3c0f48 100644
--- a/lib/timer.c
+++ b/lib/timer.c
@@ -40,3 +40,16 @@ timer_wait(const struct timer *timer)
poll_timer_wait_until(timer->t);
}
}
+
+/* Returns the time at which 'timer' was set with 'duration'. Infinite timers
+ * were enabled at time LLONG_MAX. Manually expired timers were enabled at
+ * LLONG_MIN. */
+long long int
+timer_enabled_at(const struct timer *timer, long long int duration)
+{
+ switch (timer->t) {
+ case LLONG_MAX: return LLONG_MAX;
+ case LLONG_MIN: return LLONG_MIN;
+ default: return timer->t - duration;
+ }
+}