Skip to content

Commit 11f7dcf

Browse files
Fishrock123BridgeAR
authored andcommitted
timers: do not expose .unref()._handle._list
The list is defunct at this point. I believe this to be in effect a minor defect from 3eecdf9 PR-URL: #8422 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Julien Gilli <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 87bddda commit 11f7dcf

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

lib/timers.js

+3
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,9 @@ Timeout.prototype.unref = function() {
598598
}
599599

600600
var handle = reuse(this);
601+
if (handle) {
602+
handle._list = undefined;
603+
}
601604

602605
this._handle = handle || new TimerWrap();
603606
this._handle.owner = this;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
'use strict';
2+
3+
require('../common');
4+
const assert = require('assert');
5+
6+
const timer1 = setTimeout(() => {}, 1).unref();
7+
assert.strictEqual(timer1._handle._list, undefined,
8+
'timer1._handle._list should be undefined');
9+
10+
// Check that everything works even if the handle was not re-used.
11+
setTimeout(() => {}, 1);
12+
const timer2 = setTimeout(() => {}, 1).unref();
13+
assert.strictEqual(timer2._handle._list, undefined,
14+
'timer2._handle._list should be undefined');

0 commit comments

Comments
 (0)