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 t
- create ()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 -> unit
- pushback writerblocks the current thread until the pipe is empty or closed.
module Written_or_closed : sig ... end- module If_closed : sig ... end
- Functions 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 -> 'b
- transfer_in_without_pushback'and- write_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 -> 'b
- val transfer_in : 'a t -> from:'a Core.Queue.t -> if_closed:'b If_closed.t -> 'b
- transfer_inand- writetransfer the element(s) into the pipe and block the current thread until the pipe is empty or closed (like- pushback).
- val write : 'a t -> 'a -> if_closed:'b If_closed.t -> 'b
- val close : _ t -> unit
- val is_closed : _ t -> bool
- val closed : _ t -> unit
- closed writerblocks the current thread until the pipe is closed.