Browse Source

timers: fix assertion in Timeout.unref()

Ensure that the delay >= 0 when detaching the timer from the queue. Fixes the
following assertion:

  uv_timer_start: Assertion `timeout >= 0' failed.

No test included, it's timing sensitive.
v0.9.1-release
Ben Noordhuis 12 years ago
parent
commit
6c999fd285
  1. 4
      lib/timers.js

4
lib/timers.js

@ -253,10 +253,12 @@ var Timeout = function(after) {
Timeout.prototype.unref = function() {
if (!this._handle) {
var delay = this._when - Date.now();
if (delay < 0) delay = 0;
exports.unenroll(this);
this._handle = new Timer();
this._handle.ontimeout = this._onTimeout;
this._handle.start(this._when - Date.now(), 0);
this._handle.start(delay, 0);
this._handle.domain = this.domain;
this._handle.unref();
} else {

Loading…
Cancel
Save