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

Function takeUnsafe

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

Source from the content-addressed store, hash-verified

1550 * @since 4.0.0
1551 */
1552export const takeUnsafe = <A, E>(self: Dequeue<A, E>): Exit<A, E> | undefined => {
1553 if (self.state._tag === "Done") {
1554 return self.state.exit
1555 }
1556 if (self.messages.length > 0) {
1557 const message = MutableList.take(self.messages)!
1558 releaseCapacity(self)
1559 return core.exitSucceed(message)
1560 } else if (self.capacity <= 0 && self.state.offers.size > 0) {
1561 self.capacity = 1
1562 releaseCapacity(self)
1563 self.capacity = 0
1564 const message = MutableList.take(self.messages)!
1565 releaseCapacity(self)
1566 return core.exitSucceed(message)
1567 }
1568 return undefined
1569}
1570
1571const await_ = <A, E>(self: Dequeue<A, E>): Effect<void, Exclude<E, Done>> =>
1572 internalEffect.callback<void, Exclude<E, Done>>((resume) => {

Callers 2

takeFunction · 0.85
pollFunction · 0.85

Calls 2

releaseCapacityFunction · 0.85
takeMethod · 0.65

Tested by

no test coverage detected