23 lines
795 B
JavaScript
23 lines
795 B
JavaScript
|
'use strict';
|
||
|
const common = require('../common');
|
||
|
const assert = require('assert');
|
||
|
const { Worker } = require('worker_threads');
|
||
|
|
||
|
// Regression test for https://github.com/nodejs/node/issues/28777
|
||
|
// Make sure that SharedArrayBuffers created in Worker threads are accessible
|
||
|
// after the creating thread ended.
|
||
|
|
||
|
const w = new Worker(`
|
||
|
const { parentPort } = require('worker_threads');
|
||
|
const sharedArrayBuffer = new SharedArrayBuffer(4);
|
||
|
parentPort.postMessage(sharedArrayBuffer);
|
||
|
`, { eval: true });
|
||
|
|
||
|
let sharedArrayBuffer;
|
||
|
w.once('message', common.mustCall((message) => sharedArrayBuffer = message));
|
||
|
w.once('exit', common.mustCall(() => {
|
||
|
const uint8array = new Uint8Array(sharedArrayBuffer);
|
||
|
uint8array[0] = 42;
|
||
|
assert.deepStrictEqual(uint8array, new Uint8Array([42, 0, 0, 0]));
|
||
|
}));
|