include Bin_prot.Binable.S1 with type 'a t := 'a t
val bin_shape_t : Bin_prot.Shape.t -> Bin_prot.Shape.tval bin_size_t : ('a, 'a t) Bin_prot.Size.sizer1val bin_write_t : ('a, 'a t) Bin_prot.Write.writer1val bin_read_t : ('a, 'a t) Bin_prot.Read.reader1val __bin_read_t__ : ('a, int -> 'a t) Bin_prot.Read.reader1val bin_writer_t : ('a, 'a t) Bin_prot.Type_class.S1.writerval bin_reader_t : ('a, 'a t) Bin_prot.Type_class.S1.readerval bin_t : ('a, 'a t) Bin_prot.Type_class.S1.tval sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.ttype 'a ivar = 'a tinclude Core_kernel.Invariant.S1 with type 'a t := 'a t
val invariant : ('a -> unit) -> 'a t -> unitval create : unit -> 'a tcreate () returns an empty ivar.
val create_full : 'a -> 'a tcreate_full v returns an ivar filled with v.
val fill : 'a t -> 'a -> unitfill t v fills t with value v if t was empty. If t was full, fill raises an exception. It is guaranteed that immediately after calling fill t, is_some
(Deferred.peek (read t)).
val fill_if_empty : 'a t -> 'a -> unitfill_if_empty t v fills t with v if t is currently empty. If t is full, then fill_if_empty does nothing.
val is_empty : 'a t -> boolis_empty t returns true if t is empty.
val is_full : 'a t -> boolis_full t returns true if t is full.
val read : 'a t -> 'a Async_kernel__Types.Deferred.tread t returns a deferred that becomes enabled with value v after the ivar is filled with v.
val peek : 'a t -> 'a optionpeek t returns Some v iff t is full with value v.
val value_exn : 'a t -> 'avalue_exn t returns v if t is full with value v, and raises otherwise.
val has_handlers : _ t -> boolhas_handlers t returns true if t has handlers waiting on read t.