Skip to content

Commit

Permalink
worker: remove redundant function call to setupPortReferencing
Browse files Browse the repository at this point in the history
in `setupChild`

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`.
  • Loading branch information
oyyd committed Aug 20, 2018
1 parent 79642ae commit 8b626ad
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
1 change: 0 additions & 1 deletion lib/internal/worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,6 @@ function setupChild(evalScript) {
if (message.type === messageTypes.LOAD_SCRIPT) {
const { filename, doEval, workerData, publicPort, hasStdin } = message;
publicWorker.parentPort = publicPort;
setupPortReferencing(publicPort, publicPort, 'message');
publicWorker.workerData = workerData;

if (!hasStdin)
Expand Down
25 changes: 25 additions & 0 deletions test/parallel/test-worker-parent-port-ref.js
Original file line number Diff line number Diff line change
@@ -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);
}
}

0 comments on commit 8b626ad

Please sign in to comment.