diff --git a/lib/timers.js b/lib/timers.js index 3900d61c94..8431b2ddd9 100644 --- a/lib/timers.js +++ b/lib/timers.js @@ -263,12 +263,15 @@ var Timeout = function(after) { this._idleTimeout = after; this._idlePrev = this; this._idleNext = this; - this._when = Date.now() + after; + this._idleStart = null; + this._onTimeout = null; }; Timeout.prototype.unref = function() { if (!this._handle) { - var delay = this._when - Date.now(); + var now = Date.now(); + if (!this._idleStart) this._idleStart = now; + var delay = this._idleStart + this._idleTimeout - now; if (delay < 0) delay = 0; exports.unenroll(this); this._handle = new Timer();