tui: fix memory leaks in session management and improve permission error handling

This commit is contained in:
Dax Raad
2026-01-01 21:28:11 -05:00
parent 8290bca068
commit 563aa49f43
5 changed files with 123 additions and 9 deletions
+9 -6
View File
@@ -9,15 +9,18 @@ export namespace SessionRetry {
export async function sleep(ms: number, signal: AbortSignal): Promise<void> {
return new Promise((resolve, reject) => {
const timeout = setTimeout(resolve, Math.min(ms, RETRY_MAX_DELAY))
signal.addEventListener(
"abort",
const abortHandler = () => {
clearTimeout(timeout)
reject(new DOMException("Aborted", "AbortError"))
}
const timeout = setTimeout(
() => {
clearTimeout(timeout)
reject(new DOMException("Aborted", "AbortError"))
signal.removeEventListener("abort", abortHandler)
resolve()
},
{ once: true },
Math.min(ms, RETRY_MAX_DELAY),
)
signal.addEventListener("abort", abortHandler, { once: true })
})
}