mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00

The issue arises from the `getFreeCallCount()` function yielding the initial value of 0. Upon instantiation of the `Worker` object, it increments to 1. In the case of this flaky test, if the creation of the `Worker` object is faster, the subsequent `getFreeCallCount()` call always returns 1 instead of the expected 0. Fixes: https://github.com/nodejs/node/issues/51003 PR-URL: https://github.com/nodejs/node/pull/51013 Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
19 lines
657 B
JavaScript
19 lines
657 B
JavaScript
'use strict';
|
|
const common = require('../../common');
|
|
const path = require('path');
|
|
const assert = require('assert');
|
|
const { Worker } = require('worker_threads');
|
|
const binding = path.resolve(__dirname, `./build/${common.buildType}/binding`);
|
|
const { getFreeCallCount } = require(binding);
|
|
|
|
// getFreeCallCount initial value is 0
|
|
assert.strictEqual(getFreeCallCount(), 0);
|
|
|
|
// Test that buffers allocated with a free callback through our APIs are
|
|
// released when a Worker owning it exits.
|
|
|
|
const w = new Worker(`require(${JSON.stringify(binding)})`, { eval: true });
|
|
|
|
w.on('exit', common.mustCall(() => {
|
|
assert.strictEqual(getFreeCallCount(), 1);
|
|
}));
|