diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-01-13 22:08:34 +0100 |
---|---|---|
committer | Daniel Bevenius <daniel.bevenius@gmail.com> | 2019-01-22 05:38:44 +0100 |
commit | 2c9e12e49656fa194376cf01356bc964e0d9161b (patch) | |
tree | 3d60ad12fcecb7a2cfc31ada8c52b474c283386d /test | |
parent | 1b11824f514ac6fea77b7ae7b92e2ab64d970351 (diff) | |
download | android-node-v8-2c9e12e49656fa194376cf01356bc964e0d9161b.tar.gz android-node-v8-2c9e12e49656fa194376cf01356bc964e0d9161b.tar.bz2 android-node-v8-2c9e12e49656fa194376cf01356bc964e0d9161b.zip |
test,worker: verify that `.terminate()` breaks microtask queue
PR-URL: https://github.com/nodejs/node/pull/25480
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-worker-terminate-microtask-loop.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/parallel/test-worker-terminate-microtask-loop.js b/test/parallel/test-worker-terminate-microtask-loop.js new file mode 100644 index 0000000000..b2351c5d0b --- /dev/null +++ b/test/parallel/test-worker-terminate-microtask-loop.js @@ -0,0 +1,19 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { Worker } = require('worker_threads'); + +// Verify that `.terminate()` interrupts the microtask queue. + +const worker = new Worker(` +function loop() { Promise.resolve().then(loop); } loop(); +require('worker_threads').parentPort.postMessage('up'); +`, { eval: true }); + +worker.once('message', common.mustCall(() => { + setImmediate(() => worker.terminate()); +})); + +worker.once('exit', common.mustCall((code) => { + assert.strictEqual(code, 1); +})); |