Skip to content

Commit 734c24d

Browse files
committed
worker: remove messageerror listeners on exit
Signed-off-by: Dayun <dlekdbs6530@gmail.com>
1 parent c081d10 commit 734c24d

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

lib/internal/worker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ class Worker extends EventEmitter {
393393
drainMessagePort(this[kPort]);
394394
destroyMainThreadPort(this.threadId);
395395
this.removeAllListeners('message');
396-
this.removeAllListeners('messageerrors');
396+
this.removeAllListeners('messageerror');
397397
this[kPublicPort].unref();
398398
this[kPort].unref();
399399
this[kDispose]();
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
const assert = require('node:assert');
5+
const { Worker } = require('node:worker_threads');
6+
7+
const worker = new Worker('', { eval: true });
8+
const listener = () => {};
9+
10+
worker.on('message', listener);
11+
worker.on('messageerror', listener);
12+
13+
worker.on('exit', common.mustCall(() => {
14+
assert.strictEqual(worker.listenerCount('message'), 0);
15+
assert.strictEqual(worker.listenerCount('messageerror'), 0);
16+
}));

0 commit comments

Comments
 (0)