- // check isrunning in case the timer was stopped in the fired event
-
- if (compute_min_remaining && timer->isrunning)
+ // check isrunning in case the timer was stopped in the fired
+ // event or this was a one shot timer; note that a one shot
+ // timer that was restarted in its fired event will push us
+ // through here with remaining < 0, but we've already scheduled
+ // an executeTimers in that case
+ if (timer->isrunning)