Await_sync.IvarA write-once cell that can be empty or full (i.e., hold a single value).
val create : unit -> 'a t @@ portablecreate () returns an empty ivar.
val create_full : 'a @ portable contended -> 'a t @@ portablecreate_full v returns an ivar filled with v.
val fill_exn :
'a t @ local ->
('a @ portable contended ->
unit) @ local @@ portablefill_exn t v fills t with value v if t was empty.
val fill_if_empty :
'a t @ local ->
('a @ portable contended ->
unit) @ local @@ portablefill_if_empty t v fills t with value v if t was empty. Otherwise does nothing.
val read :
Await_kernel.Await.t @ local ->
('a t @ local ->
'a @ portable contended) @ local @@ portableread w t waits until the ivar t is filled and returns the value v after the ivar is filled with v.
val read_or_cancel :
Await_kernel.Await.t @ local ->
(Await_kernel.Cancellation.t @ local ->
('a t @ local ->
'a Await_kernel.Or_canceled.t @ contended) @ local) @ local @@ portableread_or_cancel w c t is Completed (read w t) if c was not canceled, otherwise it is Canceled.
val peek : 'a t @ local -> 'a or_null @ contended @@ portablepeek t returns This v iff t is full with value v, or Null if t is not full.