EffectTalk

Effect.acquireRelease for manual resources

Use Effect.acquireRelease when you need explicit acquire → use → release logic. Unlike Layer.scoped, this is for one-off resources—files, connections, locks—where you control the lifecycle directly.

The acquire effect runs first; the release runs when the scope ends, even if the use phase fails.

  • Use Effect.acquireRelease(acquire, release) - release takes the acquired value
  • The result is an Effect that must be used inside Effect.scoped
  • Release runs whether the use phase succeeds or fails
Loading code editor...