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

Function acquireUseRelease

packages/effect/src/Micro.ts:3600–3614  ·  view source on GitHub ↗
(
  acquire: Micro<Resource, E, R>,
  use: (a: Resource) => Micro<A, E2, R2>,
  release: (a: Resource, exit: MicroExit<A, E2>) => Micro<void, E3, R3>
)

Source from the content-addressed store, hash-verified

3598 * @category resources & finalization
3599 */
3600export const acquireUseRelease = <Resource, E, R, A, E2, R2, E3, R3>(
3601 acquire: Micro<Resource, E, R>,
3602 use: (a: Resource) => Micro<A, E2, R2>,
3603 release: (a: Resource, exit: MicroExit<A, E2>) => Micro<void, E3, R3>
3604): Micro<A, E | E2 | E3, R | R2 | R3> =>
3605 uninterruptibleMask((restore) =>
3606 flatMap(
3607 acquire,
3608 (a) =>
3609 flatMap(
3610 exit(restore(use(a))),
3611 (exit) => andThen(release(a, exit), exit)
3612 )
3613 )
3614 )
3615
3616// ----------------------------------------------------------------------------
3617// interruption

Callers

nothing calls this directly

Calls 5

restoreFunction · 0.85
uninterruptibleMaskFunction · 0.70
exitFunction · 0.70
useFunction · 0.50
releaseFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…