MCPcopy
hub / github.com/Effect-TS/effect / releaseUnsafe

Function releaseUnsafe

packages/effect/src/PartitionedSemaphore.ts:135–155  ·  view source on GitHub ↗
(permits: number)

Source from the content-addressed store, hash-verified

133
134 let iterator = partitions[Symbol.iterator]()
135 const releaseUnsafe = (permits: number) => {
136 while (permits > 0) {
137 if (waitingPermits === 0) {
138 totalPermits += permits
139 return
140 }
141
142 let state = iterator.next()
143 if (state.done) {
144 iterator = partitions[Symbol.iterator]()
145 state = iterator.next()
146 if (state.done) return
147 }
148
149 const entry = Iterable.unsafeHead(state.value[1])
150 entry.permits--
151 waitingPermits--
152 if (entry.permits === 0) entry.resume()
153 permits--
154 }
155 }
156
157 return {
158 [TypeId]: TypeId,

Callers 3

takeFunction · 0.85
onFailureFunction · 0.85
onSuccessFunction · 0.85

Calls 2

resumeMethod · 0.80
nextMethod · 0.65

Tested by

no test coverage detected