arrow-fx / arrow.fx.extensions / IOBracket / bracketCase

bracketCase

open fun <A, B> IOOf<A>.bracketCase(release: (A, ExitCase<Throwable>) -> IOOf<Unit>, use: (A) -> IOOf<B>): IO<B>

A way to safely acquire a resource and release in the face of errors and cancellation. It uses ExitCase to distinguish between different exit cases when releasing the acquired resource.

Parameters

use - is the action to consume the resource and produce an F with the result. Once the resulting F terminates, either successfully, error or cancelled.

release - the allocated resource after the resulting F of use is terminates.

Do you like Arrow?

Arrow Org
<