INNER CODE UNIT · TypeScript
handleProxyRestart
lidge-jun/opencodex · src/cli/index.ts:959
async function handleProxyRestart(
startWhenStopped: (recoveringLiveRestart: boolean) => Promise<ProxyRestartStartOutcome>, onSupervised?: (supervisor: RestartSupervisor) => void,
): Promise<boolean> {
const deadlineAt = Date.now() + PROXY_RESTART_OBSERVE_MS;
const result = await runDesktopAwareProxyRestart({
findLive: () => discoverStableProxyForRestart({
findLive: () => findLiveProxy({ deadlineAt, attempts: 2, acceptPackageTreeFenced: true }),
expired: () => Date.now() >= deadlineAt,
}),
startWhenStopped,
requestInPlaceRestart: previous => requestBoundSystemRestart(previous, deadlineAt),
waitForReplacement: previous => waitForProxyReplacement(previous, deadlineAt - RESTART_REOBSERVE_RESERVE_MS, end => findLiveProxy({ deadlineAt: end })),
reobserveAfterReplacement: previous => reobserveRestartReplacement(previous, deadlineAt, end =>
discoverStableProxyForRestart({
findLive: () => findLiveProxy({ deadlineAt: end, attempts: 2, acceptPackageTreeFenced: true }),
waitBetweenChecks: () => Bun.sleep(250),
expired: () => Date.now() >= end,
})),