Module Thread_safe_pipe
A thread-safe pipe is a thread-safe interface to the write end of a normal Async.Pipe. All operations except for create must be called from threads outside Async, while create can be called from inside or outside Async.
For Pipe functions that return a unit Deferred.t, the analog in Thread_safe_pipe blocks.
For documentation of wakeup_scheduler, see the Thread_safe module.
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
val create : unit -> 'a Async_kernel.Pipe.Reader.t * 'a tcreate ()returns a reader end, which must be used inside Async, and a writer end, which must be used outside Async.createcan be called inside or outside Async.
val pushback : _ t -> unitpushback writerblocks the current thread until the pipe is empty or closed.
module Written_or_closed : sig ... endmodule If_closed : sig ... endFunctions that write elements to the pipe take an
If_closed.targument to specify how to deal with the possibility that the pipe is closed.
val transfer_in_without_pushback : ?wakeup_scheduler:bool -> 'a t -> from:'a Core.Queue.t -> if_closed:'b If_closed.t -> 'btransfer_in_without_pushback'andwrite_without_pushbacktransfer the element(s) into the pipe and return immediately.
val write_without_pushback : ?wakeup_scheduler:bool -> 'a t -> 'a -> if_closed:'b If_closed.t -> 'bval transfer_in : 'a t -> from:'a Core.Queue.t -> if_closed:'b If_closed.t -> 'btransfer_inandwritetransfer the element(s) into the pipe and block the current thread until the pipe is empty or closed (likepushback).
val write : 'a t -> 'a -> if_closed:'b If_closed.t -> 'bval close : _ t -> unitval is_closed : _ t -> boolval closed : _ t -> unitclosed writerblocks the current thread until the pipe is closed.