Up

Module Mailbox

Signature

type 'a t
module Filter : sig .. end
val create : ?to_sexp:('a -> Async.Std.Sexp.t) -> (unit -> 'a option Async.Std.Deferred.t) -> 'a t
val of_stream : ?to_sexp:('a -> Async.Std.Sexp.t) -> 'a Async.Std.Stream.t -> 'a t
val of_pipe : ?to_sexp:('a -> Async.Std.Sexp.t) -> 'a Async.Std.Pipe.Reader.t -> 'a t
val receive : ?debug:string -> ?timeout:unit Async.Std.Deferred.t -> ?swallow:bool -> 'a t -> filter:('a, 'b) Filter.t -> postcond:('b list -> bool) -> 'b list Async.Std.Deferred.t
val peek : 'a t -> ('a, 'b) Filter.t -> 'b list
val zero : ?debug:string -> 'a t -> ('a, 'b) Filter.t -> unit
val one : ?debug:string -> ?timeout:unit Async.Std.Deferred.t -> ?swallow:bool -> 'a t -> ('a, 'b) Filter.t -> 'b Async.Std.Deferred.t
val two : ?debug:string -> ?timeout:unit Async.Std.Deferred.t -> ?swallow:bool -> 'a t -> ('a, 'b) Filter.t -> ('b * 'b) Async.Std.Deferred.t
val many : ?debug:string -> ?timeout:unit Async.Std.Deferred.t -> ?swallow:bool -> 'a t -> int -> ('a, 'b) Filter.t -> 'b list Async.Std.Deferred.t
val not_empty : ?debug:string -> ?timeout:unit Async.Std.Deferred.t -> 'a t -> ('a, 'b) Filter.t -> 'b list Async.Std.Deferred.t
val clear : ?to_remove:('a -> bool) -> 'a t -> unit
val check_clear : 'a t -> unit Core.Std.Or_error.t
val filter : 'a t -> ('a, 'b) Filter.t -> unit