val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> ('permissions -> Ppx_sexp_conv_lib.Sexp.t) -> ('a, 'permissions) t -> Ppx_sexp_conv_lib.Sexp.t
include Core_kernel.Invariant.S2 with type ('a, 'permissions) t := ('a, 'permissions) t
val invariant : ('a -> unit) -> ('b -> unit) -> ('a, 'permissions) t -> unit
val create : unit -> ('a, Core_kernel.read_write) t
val wait : ('a, [> Core_kernel.read ]) t -> 'a Async_kernel__Types.Deferred.t
wait t
becomes determined by the next call to broadcast t a
.
val broadcast : ('a, [> Core_kernel.write ]) t -> 'a -> unit
val has_any_waiters : ('a, _) t -> bool
has_any_waiters t
returns true
iff there has been a call to wait t
since the most recent call to broadcast t
.