mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
When backportingf8193abinto v0.10, a regression was introduced. Timers with non-integer timeout could trigger a infinite recursion with 100% cpu usage. This commit backports93b0624which fixes the regression. After backportingf8193ab, 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.