From 31d2730c9a4375ab01c2138fb76e8aea748451de Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Fri, 13 Sep 2013 21:43:47 +0200 Subject: [PATCH] dde_kit: Allow re-scheduling from timer handler Prior this change, the attempt to re-schedule a timer from its timer handler resulted in a clear '_pending' flag. This caused the timer event to disappear from the scheduling queue without the handler being called ever again. By resetting the '_pending' value before calling the hander, we prevent a re-scheduled '_pending' flag to be cleared immediately after calling the handler. --- os/src/lib/dde_kit/timer.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/src/lib/dde_kit/timer.cc b/os/src/lib/dde_kit/timer.cc index 04863d4b6..3c2119302 100644 --- a/os/src/lib/dde_kit/timer.cc +++ b/os/src/lib/dde_kit/timer.cc @@ -138,8 +138,8 @@ class dde_kit_timer : public Alarm, public List::Element { /* if timer is really pending, call registered handler function */ if (_pending) { - _handler(_priv); _pending = false; + _handler(_priv); } /* do not schedule again */