| 'use strict'; | |
| require('../common'); | |
| const { Worker, MessageChannel } = require('worker_threads'); | |
| // Check the interaction of calling .terminate() while transferring | |
| // MessagePort objects; in particular, that it does not crash the process. | |
| for (let i = 0; i < 10; ++i) { | |
| const w = new Worker( | |
| "require('worker_threads').parentPort.on('message', () => {})", | |
| { eval: true }); | |
| setImmediate(() => { | |
| const port = new MessageChannel().port1; | |
| w.postMessage({ port }, [ port ]); | |
| w.terminate(); | |
| }); | |
| } |