From aeeb7070f84437aa608a3d843346b1efa916d175 Mon Sep 17 00:00:00 2001 From: Sylvain Munaut Date: Fri, 11 Nov 2011 18:57:59 +0100 Subject: core/timer: Allow an already scheduled timer to be re-scheduled at a new time Signed-off-by: Sylvain Munaut --- src/timer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/timer.c b/src/timer.c index 217f6521..77fb0039 100644 --- a/src/timer.c +++ b/src/timer.c @@ -69,8 +69,12 @@ static void __add_timer(struct osmo_timer_list *timer) */ void osmo_timer_add(struct osmo_timer_list *timer) { - timer->active = 1; - INIT_LLIST_HEAD(&timer->list); + if (timer->active) { + rb_erase(&timer->node, &timer_root); + } else { + timer->active = 1; + INIT_LLIST_HEAD(&timer->list); + } __add_timer(timer); } -- cgit v1.2.3