MCPcopy Index your code
hub / github.com/Effect-TS/effect / offer

Method offer

packages/effect/src/internal/mailbox.ts:93–118  ·  view source on GitHub ↗
(message: A)

Source from the content-addressed store, hash-verified

91 }
92
93 offer(message: A): Effect<boolean> {
94 return core.suspend(() => {
95 if (this.state._tag !== "Open") {
96 return exitFalse
97 } else if (this.messages.length + this.messagesChunk.length >= this.capacity) {
98 switch (this.strategy) {
99 case "dropping":
100 return exitFalse
101 case "suspend":
102 if (this.capacity <= 0 && this.state.takers.size > 0) {
103 this.messages.push(message)
104 this.releaseTaker()
105 return exitTrue
106 }
107 return this.offerRemainingSingle(message)
108 case "sliding":
109 this.unsafeTake()
110 this.messages.push(message)
111 return exitTrue
112 }
113 }
114 this.messages.push(message)
115 this.scheduleReleaseTaker()
116 return exitTrue
117 })
118 }
119 unsafeOffer(message: A): boolean {
120 if (this.state._tag !== "Open") {
121 return false

Callers

nothing calls this directly

Calls 3

offerRemainingSingleMethod · 0.95
unsafeTakeMethod · 0.95
scheduleReleaseTakerMethod · 0.95

Tested by

no test coverage detected