Files
node/test/parallel/test-webworker-ref-unref.js
Aviv Keller d288ad35c0 worker: add ref/unref to web workers
Signed-off-by: avivkeller <me@aviv.sh>
PR-URL: https://github.com/nodejs/node/pull/65507
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com>
Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
2026-08-29 18:25:16 +00:00

30 lines
843 B
JavaScript

// Flags: --experimental-web-worker
'use strict';
const common = require('../common');
const fixtures = require('../common/fixtures');
const assert = require('assert');
{
// Both are no-ops on a worker whose script could not be loaded.
const worker = new Worker(fixtures.fileURL('web-worker', 'nonexistent.js').href);
worker.addEventListener('error', common.mustCall());
process.unref(worker);
process.ref(worker);
}
const worker = new Worker(fixtures.fileURL('web-worker', 'echo.js').href);
worker.addEventListener('error', common.mustNotCall('worker failed'));
worker.addEventListener('message', common.mustCall(({ data }) => {
assert.strictEqual(data, 'hello');
worker.terminate();
}));
process.once('beforeExit', common.mustCall(() => {
process.ref(worker);
worker.postMessage('hello');
}));
process.unref(worker);