1'use strict'; 2require('../common'); 3const assert = require('assert'); 4const { Worker } = require('worker_threads'); 5 6// Make sure that allocating uninitialized ArrayBuffers in one thread does not 7// affect the zero-initialization in other threads. 8 9const w = new Worker(` 10const { parentPort } = require('worker_threads'); 11 12function post() { 13 const uint32array = new Uint32Array(64); 14 parentPort.postMessage(uint32array.reduce((a, b) => a + b)); 15} 16 17setInterval(post, 0); 18`, { eval: true }); 19 20function allocBuffers() { 21 Buffer.allocUnsafe(32 * 1024 * 1024); 22} 23 24const interval = setInterval(allocBuffers, 0); 25 26let messages = 0; 27w.on('message', (sum) => { 28 assert.strictEqual(sum, 0); 29 if (messages++ === 100) { 30 clearInterval(interval); 31 w.terminate(); 32 } 33}); 34