• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2const common = require('../common');
3const { MessageChannel } = require('worker_threads');
4
5// Make sure that .start() and .stop() do not throw on closing/closed
6// MessagePorts.
7// Refs: https://github.com/nodejs/node/issues/26463
8
9function dummy() {}
10
11{
12  const { port1, port2 } = new MessageChannel();
13  port1.close(common.mustCall(() => {
14    port1.on('message', dummy);
15    port1.off('message', dummy);
16    port2.on('message', dummy);
17    port2.off('message', dummy);
18  }));
19  port1.on('message', dummy);
20  port1.off('message', dummy);
21  port2.on('message', dummy);
22  port2.off('message', dummy);
23}
24
25{
26  const { port1 } = new MessageChannel();
27  port1.on('message', dummy);
28  port1.close(common.mustCall(() => {
29    port1.off('message', dummy);
30  }));
31}
32