Module Async_kernel.Ivar
A write-once cell that can be empty or full (i.e., hold a single value).
One can read an ivar to obtain a deferred that becomes determined when the ivar is filled. An ivar is similar to an 'a option ref, except it is an error to fill an already full ivar.
- type 'a t- = 'a Async_kernel__.Types.Ivar.t
include Bin_prot.Binable.S1 with type 'a t := 'a t
- val bin_shape_t : Bin_prot.Shape.t -> Bin_prot.Shape.t
- val bin_size_t : ('a, 'a t) Bin_prot.Size.sizer1
- val bin_write_t : ('a, 'a t) Bin_prot.Write.writer1
- val bin_read_t : ('a, 'a t) Bin_prot.Read.reader1
- val __bin_read_t__ : ('a, int -> 'a t) Bin_prot.Read.reader1
- val bin_writer_t : ('a, 'a t) Bin_prot.Type_class.S1.writer
- val bin_reader_t : ('a, 'a t) Bin_prot.Type_class.S1.reader
- val bin_t : ('a, 'a t) Bin_prot.Type_class.S1.t
- val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
- type 'a ivar- = 'a t
include Core_kernel.Invariant.S1 with type 'a t := 'a t
- val invariant : 'a Base__.Invariant_intf.inv -> 'a t Base__.Invariant_intf.inv
- val create : unit -> 'a t
- create ()returns an empty ivar.
- val create_full : 'a -> 'a t
- create_full vreturns an ivar filled with- v.
- val fill : 'a t -> 'a -> unit
- fill t vfills- twith value- vif- twas empty. If- twas full,- fillraises an exception. It is guaranteed that immediately after calling- fill t,- is_some (Deferred.peek (read t)).
- val fill_if_empty : 'a t -> 'a -> unit
- fill_if_empty t vfills- twith- vif- tis currently empty. If- tis full, then- fill_if_emptydoes nothing.
- val is_empty : 'a t -> bool
- is_empty treturns true if- tis empty.
- val is_full : 'a t -> bool
- is_full treturns true if- tis full.
- val read : 'a t -> 'a Async_kernel__.Deferred0.t
- read treturns a deferred that becomes enabled with value- vafter the ivar is filled with- v.
- val peek : 'a t -> 'a option
- peek treturns- Some viff- tis full with value- v.
- val value_exn : 'a t -> 'a
- value_exn treturns- vif- tis full with value- v, and raises otherwise.
- val has_handlers : _ t -> bool
- has_handlers treturns- trueif- thas handlers waiting on- read t.