From fd89168c6b1e62541f8aa683c6d03a1d19eba7e5 Mon Sep 17 00:00:00 2001 From: mzuther Date: Sat, 6 Feb 2010 21:42:05 +0000 Subject: BUG: compensate timers for processing delay ("timer.c") git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@1103 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- timer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/timer.c b/timer.c index 3ae864b..a38b76b 100644 --- a/timer.c +++ b/timer.c @@ -180,7 +180,6 @@ int timer_process(struct timespec *delay) if (Timers[i].one_shot) { Timers[i].active = 0; } else { - Timers[i].when = now; timer_inc(&Timers[i].when, Timers[i].interval); } } @@ -203,6 +202,9 @@ int timer_process(struct timespec *delay) return -1; } + /* update the current moment to compensate for processing delay */ + gettimeofday(&now, NULL); + /* delay until next timer event */ struct timeval diff; timersub(&Timers[min].when, &now, &diff); -- cgit v1.2.3