timers: don't close interval timers when unrefd
This change fixes a regression introduced by commit 0d051238be2e07e671d7d9f4f444e0cc1efadf1b, which contained a typo that would cause every unrefd interval to fire only once. Fixes: https://github.com/joyent/node/issues/8900 Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-by: Trevor Norris <trev.norris@gmail.com>
This commit is contained in:
parent
0e061975d7
commit
cca5efb086
@ -304,7 +304,7 @@ const Timeout = function(after) {
|
|||||||
|
|
||||||
function unrefdHandle() {
|
function unrefdHandle() {
|
||||||
this.owner._onTimeout();
|
this.owner._onTimeout();
|
||||||
if (!this.owner.repeat)
|
if (!this.owner._repeat)
|
||||||
this.owner.close();
|
this.owner.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
18
test/parallel/test-timers-unrefd-interval-still-fires.js
Normal file
18
test/parallel/test-timers-unrefd-interval-still-fires.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* This test is a regression test for joyent/node#8900.
|
||||||
|
*/
|
||||||
|
var assert = require('assert');
|
||||||
|
|
||||||
|
var N = 5;
|
||||||
|
var nbIntervalFired = 0;
|
||||||
|
var timer = setInterval(function() {
|
||||||
|
++nbIntervalFired;
|
||||||
|
if (nbIntervalFired === N)
|
||||||
|
clearInterval(timer);
|
||||||
|
}, 1);
|
||||||
|
|
||||||
|
timer.unref();
|
||||||
|
|
||||||
|
setTimeout(function onTimeout() {
|
||||||
|
assert.strictEqual(nbIntervalFired, N);
|
||||||
|
}, 100);
|
Loading…
x
Reference in New Issue
Block a user