worker: remove redundant function call to setupPortReferencing
There is no need to call `setupPortReferencing` in `setupChild` as which has been called with the same arguments in the `oninit` prototype method of `MessagePort`. PR-URL: https://github.com/nodejs/node/pull/22298 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
bf5cc3bf1a
commit
3b5c9926e9
@ -408,7 +408,6 @@ function setupChild(evalScript) {
|
|||||||
if (message.type === messageTypes.LOAD_SCRIPT) {
|
if (message.type === messageTypes.LOAD_SCRIPT) {
|
||||||
const { filename, doEval, workerData, publicPort, hasStdin } = message;
|
const { filename, doEval, workerData, publicPort, hasStdin } = message;
|
||||||
publicWorker.parentPort = publicPort;
|
publicWorker.parentPort = publicPort;
|
||||||
setupPortReferencing(publicPort, publicPort, 'message');
|
|
||||||
publicWorker.workerData = workerData;
|
publicWorker.workerData = workerData;
|
||||||
|
|
||||||
if (!hasStdin)
|
if (!hasStdin)
|
||||||
|
25
test/parallel/test-worker-parent-port-ref.js
Normal file
25
test/parallel/test-worker-parent-port-ref.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// Flags: --experimental-worker
|
||||||
|
'use strict';
|
||||||
|
const assert = require('assert');
|
||||||
|
const common = require('../common');
|
||||||
|
const { isMainThread, parentPort, Worker } = require('worker_threads');
|
||||||
|
|
||||||
|
// This test makes sure that we manipulate the references of
|
||||||
|
// `parentPort` correctly so that any worker threads will
|
||||||
|
// automatically exit when there are no any other references.
|
||||||
|
{
|
||||||
|
if (isMainThread) {
|
||||||
|
const worker = new Worker(__filename);
|
||||||
|
|
||||||
|
worker.on('exit', common.mustCall((code) => {
|
||||||
|
assert.strictEqual(code, 0);
|
||||||
|
}), 1);
|
||||||
|
|
||||||
|
worker.on('online', common.mustCall());
|
||||||
|
} else {
|
||||||
|
const messageCallback = () => {};
|
||||||
|
parentPort.on('message', messageCallback);
|
||||||
|
// The thread won't exit if we don't make the 'message' listener off.
|
||||||
|
parentPort.off('message', messageCallback);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user