%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../../common'); const assert = require('assert'); const path = require('path'); const spawnSync = require('child_process').spawnSync; const binding = path.resolve(__dirname, `./build/${common.buildType}/binding`); Object.defineProperty(globalThis, 'interrupt', { get: () => { return null; }, set: () => { throw new Error('should not calling into js'); }, }); if (process.argv[2] === 'child-busyloop') { (function childMain() { const addon = require(binding); addon[process.argv[3]](); while (true) { /** wait for interrupt */ } })(); return; } if (process.argv[2] === 'child-idle') { (function childMain() { const addon = require(binding); addon[process.argv[3]](); // wait for interrupt setTimeout(() => {}, 10_000_000); })(); return; } for (const type of ['busyloop', 'idle']) { { const child = spawnSync(process.execPath, [ __filename, `child-${type}`, 'scheduleInterrupt' ]); assert.strictEqual(child.status, 0, `${type} should exit with code 0`); } { const child = spawnSync(process.execPath, [ __filename, `child-${type}`, 'ScheduleInterruptWithJS' ]); assert(common.nodeProcessAborted(child.status, child.signal)); } }