Module Block_time.Timeout

type 'a t
val create : Controller.t -> Span.t -> f:( t -> 'a ) -> 'a t
val to_deferred : 'a t -> 'a Async_kernel.Deferred.t
val peek : 'a t -> 'a option
val cancel : Controller.t -> 'a t -> 'a -> unit
val remaining_time : 'a t -> Span.t
val await : timeout_duration:Span.t -> Controller.t -> 'a Async_kernel.Deferred.t -> [ `Ok of 'a | `Timeout ] Async_kernel.Deferred.t
val await_exn : timeout_duration:Span.t -> Controller.t -> 'a Async_kernel.Deferred.t -> 'a Async_kernel.Deferred.t