2019-12-04 00:17:10 -05:00
|
|
|
// Flags: --expose-internals
|
2017-08-14 09:59:15 +08:00
|
|
|
'use strict';
|
2019-12-04 00:17:10 -05:00
|
|
|
require('../common');
|
2017-08-14 09:59:15 +08:00
|
|
|
const assert = require('assert');
|
2019-12-04 00:17:10 -05:00
|
|
|
const { sleep } = require('internal/util');
|
2017-08-14 09:59:15 +08:00
|
|
|
|
|
|
|
let cntr = 0;
|
2018-01-13 22:48:17 -05:00
|
|
|
let first;
|
2017-08-14 09:59:15 +08:00
|
|
|
const t = setInterval(() => {
|
|
|
|
cntr++;
|
|
|
|
if (cntr === 1) {
|
2019-12-04 00:17:10 -05:00
|
|
|
sleep(100);
|
2018-12-10 13:27:32 +01:00
|
|
|
// Ensure that the event loop passes before the second interval
|
2018-01-31 13:37:01 -05:00
|
|
|
setImmediate(() => assert.strictEqual(cntr, 1));
|
2018-05-13 17:42:22 +02:00
|
|
|
first = Date.now();
|
2017-08-14 09:59:15 +08:00
|
|
|
} else if (cntr === 2) {
|
2018-05-13 17:42:22 +02:00
|
|
|
assert(Date.now() - first < 100);
|
2017-08-14 09:59:15 +08:00
|
|
|
clearInterval(t);
|
|
|
|
}
|
|
|
|
}, 100);
|
2018-01-31 13:37:01 -05:00
|
|
|
const t2 = setInterval(() => {
|
|
|
|
if (cntr === 2) {
|
|
|
|
clearInterval(t2);
|
|
|
|
}
|
|
|
|
}, 100);
|