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

Function offerUnsafe

packages/effect/src/Queue.ts:708–726  ·  view source on GitHub ↗
(self: Enqueue<A, E>, message: Types.NoInfer<A>)

Source from the content-addressed store, hash-verified

706 * @since 4.0.0
707 */
708export const offerUnsafe = <A, E>(self: Enqueue<A, E>, message: Types.NoInfer<A>): boolean => {
709 if (self.state._tag !== "Open") {
710 return false
711 } else if (self.messages.length >= self.capacity) {
712 if (self.strategy === "sliding") {
713 MutableList.take(self.messages)
714 MutableList.append(self.messages, message)
715 return true
716 } else if (self.capacity <= 0 && self.state.takers.size > 0) {
717 MutableList.append(self.messages, message)
718 releaseTakers(self as Queue<A, E>)
719 return true
720 }
721 return false
722 }
723 MutableList.append(self.messages, message)
724 scheduleReleaseTaker(self as Queue<A, E>)
725 return true
726}
727
728/**
729 * Adds multiple messages to the queue. Returns the remaining messages that

Callers

nothing calls this directly

Calls 3

releaseTakersFunction · 0.85
scheduleReleaseTakerFunction · 0.85
takeMethod · 0.65

Tested by

no test coverage detected