MCPcopy Create free account
hub / github.com/Effect-TS/effect / await_

Function await_

packages/effect/src/Queue.ts:1571–1583  ·  view source on GitHub ↗
(self: Dequeue<A, E>)

Source from the content-addressed store, hash-verified

1569}
1570
1571const await_ = <A, E>(self: Dequeue<A, E>): Effect<void, Exclude<E, Done>> =>
1572 internalEffect.callback<void, Exclude<E, Done>>((resume) => {
1573 const awaiter = (effect: Effect<void, E>) => resume(Pull.catchDone(effect, () => internalEffect.exitVoid))
1574 if (self.state._tag === "Done") {
1575 return awaiter(self.state.exit)
1576 }
1577 self.state.awaiters.add(awaiter)
1578 return internalEffect.sync(() => {
1579 if (self.state._tag !== "Done") {
1580 self.state.awaiters.delete(awaiter)
1581 }
1582 })
1583 })
1584
1585export {
1586 /**

Callers

nothing calls this directly

Calls 3

awaiterFunction · 0.85
addMethod · 0.65
syncMethod · 0.45

Tested by

no test coverage detected