« Previous | Next » 

Revision 6f043940

ID6f043940bdcbfb5272be8ae959cd74b9fb5cf4f8
Parent 2fd7ee12
Child 53b4accb

Added by Julien Gilli almost 10 years ago

timers: fix timers with non-integer delay hanging.

When backporting f8193ab into v0.10, a regression was introduced. Timers
with non-integer timeout could trigger a infinite recursion with 100%
cpu usage. This commit backports 93b0624 which fixes the regression.

After backporting f8193ab, instead of using Date.now(), timers would use
Timer.now() to determine if they had expired. However, Timer.now() is
based on loop->time, which is not updated when a timer's remaining time
is > 0 and < 1. Timers would thus never timeout if their remaining time
was at some point > 0 and < 1.

With this commit, Timer.now() updates loop->time itself, and timers
always timeout eventually.

Fixes #8065 and #8068.

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences