0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-28 22:46:31 +01:00
nodejs/test/parallel/test-timers-immediate-queue.js
isaacs 3e1b1dd4a9 Remove excessive copyright/license boilerplate
The copyright and license notice is already in the LICENSE file.  There
is no justifiable reason to also require that it be included in every
file, since the individual files are not individually distributed except
as part of the entire package.
2015-01-12 15:30:28 -08:00

35 lines
871 B
JavaScript

var common = require('../common');
var assert = require('assert');
// setImmediate should run clear its queued cbs once per event loop turn
// but immediates queued while processing the current queue should happen
// on the next turn of the event loop.
// in v0.10 hit should be 1, because we only process one cb per turn
// in v0.11 and beyond it should be the exact same size of QUEUE
// if we're letting things recursively add to the immediate QUEUE hit will be
// > QUEUE
var ticked = false;
var hit = 0;
var QUEUE = 1000;
function run() {
if (hit === 0)
process.nextTick(function() { ticked = true; });
if (ticked) return;
hit += 1;
setImmediate(run);
}
for (var i = 0; i < QUEUE; i++)
setImmediate(run);
process.on('exit', function() {
console.log('hit', hit);
assert.strictEqual(hit, QUEUE, 'We ticked between the immediate queue');
});