commit 6e40b306d630a7a1fbbb4184d9a04687fb4acc7f
parent 4d57733b91d43b50ed6bfc141ecbe558fab7d2d0
Author: Florian Dold <florian@dold.me>
Date: Sat, 18 Jul 2026 11:17:36 +0200
util: fix timer leak on cancellation
Diffstat:
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/packages/taler-util/src/timer.ts b/packages/taler-util/src/timer.ts
@@ -166,13 +166,15 @@ export class TimerGroup {
): Promise<boolean> {
return new Promise<boolean>((resolve, reject) => {
let unregisterCt: (() => void) | undefined;
+ let timerHandle: TimerHandle | undefined;
if (cancellationToken != null) {
unregisterCt = cancellationToken.onCancelled(() => {
+ timerHandle?.clear();
resolve(false);
});
}
if (delayMs.d_ms !== "forever") {
- this.after(delayMs.d_ms, () => {
+ timerHandle = this.after(delayMs.d_ms, () => {
unregisterCt?.();
resolve(true);
});