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

Method withPermitsIfAvailable

packages/effect/src/Semaphore.ts:311–321  ·  view source on GitHub ↗
(n: number)

Source from the content-addressed store, hash-verified

309 readonly withPermit = this.withPermits(1)
310
311 withPermitsIfAvailable(n: number) {
312 return <A, E, R>(self: Effect.Effect<A, E, R>) =>
313 internal.uninterruptibleMask((restore) => {
314 if (this.free < n) return internal.succeedNone
315 this.taken += n
316 return internal.onExitPrimitive(restore(internal.asSome(self)), () => {
317 this.releaseUnsafe(internal.getCurrentFiber()!, n)
318 return undefined
319 }, true)
320 })
321 }
322}
323
324/**

Callers

nothing calls this directly

Calls 1

releaseUnsafeMethod · 0.95

Tested by

no test coverage detected