Skip to content

Commit cca5efb

Browse files
Julien Gilliindutny
Julien Gilli
authored andcommitted
timers: don't close interval timers when unrefd
This change fixes a regression introduced by commit 0d05123, which contained a typo that would cause every unrefd interval to fire only once. Fixes: nodejs/node-v0.x-archive#8900 Reviewed-By: Timothy J Fontaine <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-by: Trevor Norris <[email protected]>
1 parent 0e06197 commit cca5efb

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

lib/timers.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ const Timeout = function(after) {
304304

305305
function unrefdHandle() {
306306
this.owner._onTimeout();
307-
if (!this.owner.repeat)
307+
if (!this.owner._repeat)
308308
this.owner.close();
309309
}
310310

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
* This test is a regression test for joyent/node#8900.
3+
*/
4+
var assert = require('assert');
5+
6+
var N = 5;
7+
var nbIntervalFired = 0;
8+
var timer = setInterval(function() {
9+
++nbIntervalFired;
10+
if (nbIntervalFired === N)
11+
clearInterval(timer);
12+
}, 1);
13+
14+
timer.unref();
15+
16+
setTimeout(function onTimeout() {
17+
assert.strictEqual(nbIntervalFired, N);
18+
}, 100);

0 commit comments

Comments
 (0)