diff options
Diffstat (limited to 'lib/upcoming')
-rw-r--r-- | lib/upcoming/asyncdispatch.nim | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/upcoming/asyncdispatch.nim b/lib/upcoming/asyncdispatch.nim index 1787f062f..feee87bae 100644 --- a/lib/upcoming/asyncdispatch.nim +++ b/lib/upcoming/asyncdispatch.nim @@ -138,8 +138,12 @@ type callbacks: Deque[proc ()] proc processTimers(p: PDispatcherBase) {.inline.} = - while p.timers.len > 0 and epochTime() >= p.timers[0].finishAt: + #Process just part if timers at a step + var count = p.timers.len + let t = epochTime() + while count > 0 and t >= p.timers[0].finishAt: p.timers.pop().fut.complete() + dec count proc processPendingCallbacks(p: PDispatcherBase) = while p.callbacks.len > 0: |