Module Jenga_lib.Quit

val quit : Exit_code.t ‑> unit
val exit : Exit_code.t ‑> 'a Async.Deferred.t
val is_quitting : unit ‑> bool
val ignore_exn_while_quitting : (unit ‑> 'a Async.Deferred.t) ‑> 'a Async.Deferred.t
val with_prevent_quitting : (unit Async.Deferred.t ‑> unit Async.Deferred.t) ‑> unit Async.Deferred.t

with_prevent_quitting f runs f with a deferred that will be determined when quit is called. The returned deferred will be determined when the output of f is determined. If the process quits during the execution of f, then shutdown will be delayed until the function is done running (or shutdown is forced, as usual).