mirror of https://github.com/nodejs/node.git
37 lines
1.2 KiB
JavaScript
37 lines
1.2 KiB
JavaScript
'use strict';
|
|
const common = require('../../common');
|
|
|
|
if (common.isAIX || common.isIBMi) {
|
|
// see: https://github.com/libuv/libuv/pull/4599#issuecomment-2498376606
|
|
common.skip('AIX, IBM i do not support get/set thread name');
|
|
}
|
|
|
|
const assert = require('node:assert');
|
|
const { parentPort, Worker, isMainThread } = require('node:worker_threads');
|
|
const bindingPath = require.resolve(`./build/${common.buildType}/binding`);
|
|
const binding = require(bindingPath);
|
|
|
|
if (isMainThread) {
|
|
assert.strictEqual(binding.getThreadName(), 'MainThread');
|
|
|
|
const worker = new Worker(__filename);
|
|
worker.on('message', common.mustCall((data) => {
|
|
assert.strictEqual(data, 'WorkerThread');
|
|
}));
|
|
worker.on('error', common.mustNotCall());
|
|
worker.on('exit', common.mustCall((code) => {
|
|
assert.strictEqual(code, 0);
|
|
}));
|
|
|
|
const namedWorker = new Worker(__filename, { name: 'NamedThread' });
|
|
namedWorker.on('message', common.mustCall((data) => {
|
|
assert.strictEqual(data, 'NamedThread');
|
|
}));
|
|
namedWorker.on('error', common.mustNotCall());
|
|
namedWorker.on('exit', common.mustCall((code) => {
|
|
assert.strictEqual(code, 0);
|
|
}));
|
|
} else {
|
|
parentPort.postMessage(binding.getThreadName());
|
|
}
|