module Ivar: Ivartype 'a t
include Invariant.S1
val equal : 'a t -> 'a t -> boolequal t t' is physical equality of t and t'.val create : unit -> 'a tcreate () returns an empty ivar.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 emptyval is_full : 'a t -> boolis_full t returns true if t is fullRaw interface and Deferred module exposed here are for async's internal use
only. They must be exported here because we want the Deferred.t and Ivar.t types
to be fully abstract, so that they show up nicely in type errors, yet other async
code defined later needs to deal with the raw types.include Raw
module Deferred:sig..end
val read : 'a t -> 'a Deferred.tread t returns a deferred that becomes enabled with value v after the ivar is
filled with v.val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.tval bin_t : 'a Bin_prot.Type_class.t -> 'a t Bin_prot.Type_class.tval bin_read_t : 'a Bin_prot.Unsafe_read_c.reader ->
'a t Bin_prot.Read_ml.readerval bin_read_t_ : 'a Bin_prot.Unsafe_read_c.reader ->
'a t Bin_prot.Unsafe_read_c.readerval bin_read_t__ : 'a Bin_prot.Unsafe_read_c.reader ->
(int -> 'a t) Bin_prot.Unsafe_read_c.readerval bin_reader_t : 'a Bin_prot.Type_class.reader ->
'a t Bin_prot.Type_class.readerval bin_size_t : 'a Bin_prot.Size.sizer -> 'a t Bin_prot.Size.sizerval bin_write_t : 'a Bin_prot.Unsafe_write_c.writer ->
'a t Bin_prot.Write_ml.writerval bin_write_t_ : 'a Bin_prot.Unsafe_write_c.writer ->
'a t Bin_prot.Unsafe_write_c.writerval bin_writer_t : 'a Bin_prot.Type_class.writer ->
'a t Bin_prot.Type_class.writerequal t t' is physical equality of t and t'.create () returns an empty ivar.fill 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)).
fill_if_empty t v fills t with v if t is currently empty. If t is full,
then fill_if_empty does nothing.
is_empty t returns true if t is empty
is_full t returns true if t is full
The Raw interface and Deferred module exposed here are for async's internal use
only. They must be exported here because we want the Deferred.t and Ivar.t types
to be fully abstract, so that they show up nicely in type errors, yet other async
code defined later needs to deal with the raw types.
read t returns a deferred that becomes enabled with value v after the ivar is
filled with v.