diff --git a/packages/subprocess/subprocess-local/tests/fixtures/managed-tree.ts b/packages/subprocess/subprocess-local/tests/fixtures/managed-tree.ts index 31d26b9e39..a949e5fbfa 100644 --- a/packages/subprocess/subprocess-local/tests/fixtures/managed-tree.ts +++ b/packages/subprocess/subprocess-local/tests/fixtures/managed-tree.ts @@ -1,5 +1,5 @@ import { spawn } from 'node:child_process' -import { writeFile } from 'node:fs/promises' +import { rename, writeFile } from 'node:fs/promises' const [statePath] = process.argv.slice(2) if (statePath === undefined) throw new Error('usage: managed-tree.ts ') @@ -12,5 +12,7 @@ const descendant = spawn(process.execPath, [ ], { stdio: 'ignore' }) if (descendant.pid === undefined) throw new Error('managed descendant did not publish a pid') -await writeFile(statePath, JSON.stringify({ root: process.pid, descendant: descendant.pid })) +const pendingStatePath = `${statePath}.pending-${process.pid}` +await writeFile(pendingStatePath, JSON.stringify({ root: process.pid, descendant: descendant.pid })) +await rename(pendingStatePath, statePath) setInterval(() => {}, 60_000)