From fc775f0019d91e8edc354e75f9d8f73668501b22 Mon Sep 17 00:00:00 2001 From: "Kamat, Trivikram" <16024985+trivikr@users.noreply.github.com> Date: Sun, 17 May 2026 16:24:57 -0700 Subject: [PATCH] test: keep finalization ref alive until exit Keep the registered finalization object strongly reachable until process exit so the test does not depend on GC timing. Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> Assisted-by: openai:gpt-5.5 --- test/fixtures/process/different-registry-per-thread.mjs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/fixtures/process/different-registry-per-thread.mjs b/test/fixtures/process/different-registry-per-thread.mjs index 018fb42529f6f0..1e28fe30db57a3 100644 --- a/test/fixtures/process/different-registry-per-thread.mjs +++ b/test/fixtures/process/different-registry-per-thread.mjs @@ -5,6 +5,12 @@ const registeredRefs = []; const ref = { foo: 'foo' }; registeredRefs.push(ref); +process.on('exit', () => { + // Keep `ref` strongly reachable until exit so the per-thread finalization + // callbacks are tested without depending on GC timing. + registeredRefs.length; +}); + if (isMainThread) { process.finalization.register(ref, () => { process.stdout.write('shutdown on main thread\n'); @@ -13,7 +19,6 @@ if (isMainThread) { const worker = new Worker(import.meta.filename); worker.on('error', (err) => { - // Referencing `registeredRefs` here to avoid `ref` being GCed before the worker exits. console.log(registeredRefs); throw err; });