Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
900 B · 25 lines
TypeScript
at main
1234567891011121314151617181920212223242526/** * Global registry for cleanup functions that should run during graceful shutdown. * This module is separate from gracefulShutdown.ts to avoid circular dependencies. */
// Global registry for cleanup functionsconst cleanupFunctions = new Set<() => Promise<void>>()
/** * Register a cleanup function to run during graceful shutdown. * @param cleanupFn - Function to run during cleanup (can be sync or async) * @returns Unregister function that removes the cleanup handler */export function registerCleanup(cleanupFn: () => Promise<void>): () => void { cleanupFunctions.add(cleanupFn) return () => cleanupFunctions.delete(cleanupFn) // Return unregister function}
/** * Run all registered cleanup functions. * Used internally by gracefulShutdown. */export async function runCleanupFunctions(): Promise<void> { await Promise.all(Array.from(cleanupFunctions).map(fn => fn()))}