node/test/parallel/test-timers-unref-remove-other-unref-timers-only-one-fires.js
Rich Trott f593f9e9ef test: adjust comments for upcoming lint rule
Enforce `//` for multiline comments. Some tests mixed and matched, and
at least one did so in a (to me) surprising way.

PR-URL: https://github.com/nodejs/node/pull/35485
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-10-07 04:36:02 -07:00

42 lines
940 B
JavaScript

'use strict';
// The goal of this test is to make sure that, after the regression introduced
// by 934bfe23a16556d05bfb1844ef4d53e8c9887c3d, the fix preserves the following
// behavior of unref timers: if two timers are scheduled to fire at the same
// time, if one unenrolls the other one in its _onTimeout callback, the other
// one will *not* fire.
// This behavior is a private implementation detail and should not be
// considered public interface.
require('../common');
const timers = require('timers');
const assert = require('assert');
let nbTimersFired = 0;
const foo = {
_onTimeout: function() {
++nbTimersFired;
timers.unenroll(bar);
}
};
const bar = {
_onTimeout: function() {
++nbTimersFired;
timers.unenroll(foo);
}
};
timers.enroll(bar, 1);
timers._unrefActive(bar);
timers.enroll(foo, 1);
timers._unrefActive(foo);
setTimeout(function() {
assert.notStrictEqual(nbTimersFired, 2);
}, 20);