Module Rpc_parallel.Parallel_managed.Make

Parameters

Signature

type t
include sig ... end
val sexp_of_t : t ‑> Base.Sexp.t
type unmanaged_t
type 'a functions
val functions : unmanaged_t functions

Accessor for the functions implemented by this worker type

type worker_state_init_arg
type connection_state_init_arg
module Id : Core.Identifiable
val id : t ‑> Id.t
val spawn : ?⁠where:Executable_location.t ‑> ?⁠name:string ‑> ?⁠env:(string * string) list ‑> ?⁠connection_timeout:Core.Time.Span.t ‑> ?⁠cd:string ‑> ?⁠umask:int ‑> redirect_stdout:Rpc_parallel__.Fd_redirection.t ‑> redirect_stderr:Rpc_parallel__.Fd_redirection.t ‑> worker_state_init_arg ‑> connection_state_init_arg ‑> on_failure:(Core.Error.t ‑> unit) ‑> t Core.Or_error.t Async.Deferred.t
val spawn_exn : ?⁠where:Executable_location.t ‑> ?⁠name:string ‑> ?⁠env:(string * string) list ‑> ?⁠connection_timeout:Core.Time.Span.t ‑> ?⁠cd:string ‑> ?⁠umask:int ‑> redirect_stdout:Rpc_parallel__.Fd_redirection.t ‑> redirect_stderr:Rpc_parallel__.Fd_redirection.t ‑> worker_state_init_arg ‑> connection_state_init_arg ‑> on_failure:(Core.Error.t ‑> unit) ‑> t Async.Deferred.t
val run : t ‑> f:(unmanaged_t'query'responseParallel.Function.t ‑> arg:'query ‑> 'response Core.Or_error.t Async.Deferred.t

run t and run_exn t will connect to t if there is not already a connection, but if there is currently a connection that has gone stale, they will fail with an error. Trying again will attempt a reconnection.

val run_exn : t ‑> f:(unmanaged_t'query'responseParallel.Function.t ‑> arg:'query ‑> 'response Async.Deferred.t
val kill : t ‑> unit Core.Or_error.t Async.Deferred.t

Using these functions will not result in on_failure reporting a closed connection, unlike running the shutdown function.

val kill_exn : t ‑> unit Async.Deferred.t