From 711f6167fb6fc3d43f114d307302054c78b9b457 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Fri, 30 Dec 2016 15:38:40 -0800 Subject: [PATCH] TIMER: Make sure remnant usecs are always explicitly removed --- scp.c | 12 ++++++------ sim_timer.c | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/scp.c b/scp.c index e3cc6378..380bab0d 100644 --- a/scp.c +++ b/scp.c @@ -9053,21 +9053,21 @@ else reason = result (SCPE_OK if ok) */ -t_stat sim_activate_after_abs (UNIT *uptr, uint32 event_time) +t_stat sim_activate_after_abs (UNIT *uptr, uint32 usec_delay) { -return _sim_activate_after_abs (uptr, event_time); +return _sim_activate_after_abs (uptr, usec_delay); } -t_stat sim_activate_after_abs_d (UNIT *uptr, double event_time) +t_stat sim_activate_after_abs_d (UNIT *uptr, double usec_delay) { -return _sim_activate_after_abs (uptr, event_time); +return _sim_activate_after_abs (uptr, usec_delay); } -t_stat _sim_activate_after_abs (UNIT *uptr, double event_time) +t_stat _sim_activate_after_abs (UNIT *uptr, double usec_delay) { AIO_VALIDATE; /* Can't call asynchronously */ sim_cancel (uptr); -return _sim_activate_after (uptr, event_time); +return _sim_activate_after (uptr, usec_delay); } t_stat sim_activate_after (UNIT *uptr, uint32 usec_delay) diff --git a/sim_timer.c b/sim_timer.c index d205c108..bac97f26 100644 --- a/sim_timer.c +++ b/sim_timer.c @@ -2338,6 +2338,7 @@ if ((sim_calb_tmr != -1) && (rtc_hz[sim_calb_tmr])) { /* Calibrated Timer if (inst_delay_d > (double)0x7fffffff) inst_delay_d = (double)0x7fffffff; /* Bound delay to avoid overflow. */ inst_delay = (int32)inst_delay_d; +uptr->usecs_remaining = 0.0; /* make sure there is no remnant here */ #if defined(SIM_ASYNCH_CLOCKS) if ((sim_asynch_timer) && (usec_delay > sim_idle_rate_ms*1000.0)) {