/** * A variant of `acquireRelease` that allows the `acquire` effect to be * interruptible. Since the `acquire` effect could be interrupted after * partially acquiring resources, the `release` effect is not allowed to * access the resource produced by `acquire` and must independently determine * what finalization, if any, needs to be performed (e.g. by examining in * memory state). * * @tsplus static effect/core/io/Effect.Ops acquireReleaseInterruptible * @tsplus fluent effect/core/io/Effect acquireReleaseInterruptible */ export function acquireReleaseInterruptible( acquire: Effect, release: Effect ): Effect { return Effect.acquireReleaseInterruptibleExit(acquire, () => release) }