Leaked Concurrency Handle (ARCH3085)
Key typescript.performance.leaked-concurrency-handle · Severity warning · Category performance
Concurrency primitives without a bounded lifetime (tasks with no cancellation signal, locks never released) run indefinitely, causing resource leaks and backpressure.
Incorrect
Section titled “Incorrect”function startPolling(): void { setInterval(() => { void poll(); }, 1000); // never cleared - runs forever}Correct
Section titled “Correct”function startPolling(signal: AbortSignal): void { const timer = setInterval(() => { void poll(); }, 1000); signal.addEventListener("abort", () => clearInterval(timer));}Tie tasks and timers to a cancellation signal; release locks in a finally block.