package async_kernel

  1. Overview
  2. Docs
Monadic concurrency library

Install

Dune Dependency

Authors

Maintainers

Sources

v0.17.0.tar.gz
sha256=01ced973dbc70535f692f38bed524ae82dba17e26e58791b2fbf0d647b160d2e

doc/async_kernel/Async_kernel/Ivar/index.html

Module Async_kernel.IvarSource

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.

Sourcetype 'a t
include Core.Bin_prot.Binable.S1 with type 'a t := 'a t
Sourceval bin_size_t : ('a, 'a t) Bin_prot.Size.sizer1
Sourceval bin_write_t : ('a, 'a t) Bin_prot.Write.writer1
Sourceval bin_read_t : ('a, 'a t) Bin_prot.Read.reader1
Sourceval __bin_read_t__ : ('a, int -> 'a t) Bin_prot.Read.reader1
Sourceval bin_writer_t : ('a, 'a t) Bin_prot.Type_class.S1.writer
Sourceval bin_reader_t : ('a, 'a t) Bin_prot.Type_class.S1.reader
Sourceval bin_t : ('a, 'a t) Bin_prot.Type_class.S1.t
Sourceval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
Sourcetype 'a ivar = 'a t
include Core.Invariant.S1 with type 'a t := 'a t
Sourceval invariant : ('a -> unit) -> 'a t -> unit
Sourceval equal : 'a t -> 'a t -> bool

equal t t' is physical equality of t and t'.

Sourceval create : unit -> 'a t

create () returns an empty ivar.

Sourceval create_full : 'a -> 'a t

create_full v returns an ivar filled with v.

Sourceval fill_exn : 'a t -> 'a -> unit

fill_exn t v fills t with value v if t was empty. If t was full, fill_exn raises an exception. It is guaranteed that immediately after calling fill_exn t, is_some (Deferred.peek (read t)).

Sourceval fill : 'a t -> 'a -> unit
  • deprecated [since 2023-04] Use [fill_exn]
Sourceval fill_if_empty : 'a t -> 'a -> unit

fill_if_empty t v fills t with v if t is currently empty. If t is full, then fill_if_empty does nothing.

Sourceval is_empty : 'a t -> bool

is_empty t returns true if t is empty.

Sourceval is_full : 'a t -> bool

is_full t returns true if t is full.

Sourceval read : 'a t -> 'a Deferred.t

read t returns a deferred that becomes enabled with value v after the ivar is filled with v.

Sourceval peek : 'a t -> 'a option

peek t returns Some v iff t is full with value v.

Sourceval value_exn : 'a t -> 'a

value_exn t returns v if t is full with value v, and raises otherwise.

Sourceval has_handlers : _ t -> bool

has_handlers t returns true if t has handlers waiting on read t.

OCaml

Innovation. Community. Security.