Module IBase.Exception

The restart scheduler uses exceptions for control flow (restarts/timeouts respectively). Functions here abstract away the semantics of when an exception can be ignored.

val try_finally : f:(unit -> 'a) -> finally:(unit -> unit) -> 'a

try_finally ~f ~finally executes f and then finally even if f raises an exception. Restart scheduler exceptions are handled as necessary.