From 41805d572f2fffd85472b90c4bb4bd48bcde0f1f Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Thu, 6 Jun 2013 16:28:33 +0200 Subject: [PATCH] Adjust last_select_ts on slew --- sched.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sched.c b/sched.c index 321c16f..06eed1b 100644 --- a/sched.c +++ b/sched.c @@ -507,12 +507,11 @@ handle_slew(struct timeval *raw, void *anything) { TimerQueueEntry *ptr; + double delta; int i; if (is_step_change) { - /* We're not interested in anything else - it won't affect the - functionality of timer event dispatching. If a step change - occurs, just shift all the timeouts by the offset */ + /* If a step change occurs, just shift all raw time stamps by the offset */ for (ptr = timer_queue.next; ptr != &timer_queue; ptr = ptr->next) { UTI_AddDoubleToTimeval(&ptr->tv, -doffset, &ptr->tv); @@ -523,8 +522,9 @@ handle_slew(struct timeval *raw, } UTI_AddDoubleToTimeval(&last_select_ts_raw, -doffset, &last_select_ts_raw); - UTI_AddDoubleToTimeval(&last_select_ts, -doffset, &last_select_ts); } + + UTI_AdjustTimeval(&last_select_ts, cooked, &last_select_ts, &delta, dfreq, doffset); } /* ================================================== */