Skip to content

Commit 3a98dd5

Browse files
committed
Fix memory leak from abort listener
1 parent bca9806 commit 3a98dd5

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

packages/sqlite/src/mq.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,9 +350,13 @@ export class SqliteMessageQueue implements MessageQueue, Disposable {
350350
while (signal == null || !signal.aborted) {
351351
let timeout: ReturnType<typeof setTimeout> | undefined;
352352
await new Promise<unknown>((resolve) => {
353-
signal?.addEventListener("abort", resolve);
353+
const onAbort = () => {
354+
signal?.removeEventListener("abort", onAbort);
355+
resolve(undefined);
356+
};
357+
signal?.addEventListener("abort", onAbort);
354358
timeout = setTimeout(() => {
355-
signal?.removeEventListener("abort", resolve);
359+
signal?.removeEventListener("abort", onAbort);
356360
resolve(0);
357361
}, this.#pollIntervalMs);
358362
timeouts.add(timeout);

0 commit comments

Comments
 (0)