fix yieldThread memory leak

This commit is contained in:
Shusui MOYATANI 2023-12-30 18:30:30 +09:00 committed by fiatjaf_
parent da51418f04
commit 4cfc67e294
1 changed files with 7 additions and 2 deletions

View File

@ -1,10 +1,15 @@
import { verifiedSymbol, type Event, type Nostr, VerifiedEvent } from './core.ts' import { verifiedSymbol, type Event, type Nostr, VerifiedEvent } from './core.ts'
export async function yieldThread() { export async function yieldThread() {
return new Promise(resolve => { return new Promise<void>(resolve => {
const ch = new MessageChannel() const ch = new MessageChannel()
const handler = () => {
// @ts-ignore (typescript thinks this property should be called `removeListener`, but in fact it's `removeEventListener`)
ch.port1.removeEventListener('message', handler)
resolve()
}
// @ts-ignore (typescript thinks this property should be called `addListener`, but in fact it's `addEventListener`) // @ts-ignore (typescript thinks this property should be called `addListener`, but in fact it's `addEventListener`)
ch.port1.addEventListener('message', resolve) ch.port1.addEventListener('message', handler)
ch.port2.postMessage(0) ch.port2.postMessage(0)
ch.port1.start() ch.port1.start()
}) })