( acquire: Micro<Resource, E, R>, use: (a: Resource) => Micro<A, E2, R2>, release: (a: Resource, exit: MicroExit<A, E2>) => Micro<void, E3, R3> )
| 3598 | * @category resources & finalization |
| 3599 | */ |
| 3600 | export 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 |
nothing calls this directly
no test coverage detected
searching dependent graphs…