Module Async_kernel__.Bvar

type ('a, -'permissions) t = ('a'permissions) Async_kernel__.Types.Bvar.t
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
type ('a, 'b) t
val invariant : 'a Base__.Invariant_intf.inv -> 'b Base__.Invariant_intf.inv -> ('a'b) t Base__.Invariant_intf.inv
val create : unit -> ('aCore_kernel.read_write) t
val wait : ('a[> Core_kernel.read ]) t -> 'a Async_kernel__.Deferred0.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.