package rpc_parallel

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Parameters

Signature

type t
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
type unmanaged_t
val functions : unmanaged_t S.functions

Accessor for the functions implemented by this worker type

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: [ `Dev_null | `File_append of string | `File_truncate of string ] -> redirect_stderr: [ `Dev_null | `File_append of string | `File_truncate of string ] -> S.Worker_state.init_arg -> S.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: [ `Dev_null | `File_append of string | `File_truncate of string ] -> redirect_stderr: [ `Dev_null | `File_append of string | `File_truncate of string ] -> S.Worker_state.init_arg -> S.Connection_state.init_arg -> on_failure:(Core.Error.t -> unit) -> t Async.Deferred.t
val run : t -> f:(unmanaged_t, 'query, 'response) Parallel.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, 'response) Parallel.Function.t -> arg:'query -> 'response 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