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

Function shutdown

packages/effect/src/Queue.ts:1137–1156  ·  view source on GitHub ↗
(self: Enqueue<A, E>)

Source from the content-addressed store, hash-verified

1135 * @since 2.0.0
1136 */
1137export const shutdown = <A, E>(self: Enqueue<A, E>): Effect<boolean> =>
1138 internalEffect.sync(() => {
1139 if (self.state._tag === "Done") {
1140 return true
1141 }
1142 MutableList.clear(self.messages)
1143 const offers = self.state.offers
1144 finalize(self, self.state._tag === "Open" ? exitInterrupt : self.state.exit)
1145 if (offers.size > 0) {
1146 for (const entry of offers) {
1147 if (entry._tag === "Single") {
1148 entry.resume(exitFalse)
1149 } else {
1150 entry.resume(core.exitSucceed(entry.remaining.slice(entry.offset)))
1151 }
1152 }
1153 offers.clear()
1154 }
1155 return true
1156 })
1157
1158/**
1159 * Takes and returns all currently buffered messages without waiting for more.

Callers 2

makeWithStrategyFunction · 0.70
Sharding.tsFile · 0.50

Calls 2

clearMethod · 0.80
syncMethod · 0.45

Tested by

no test coverage detected