val create : ?message:string -> string -> unit Async.Deferred.Or_error.tval create_exn : ?message:string -> string -> unit Async.Deferred.tval waiting_create : ?abort:unit Async.Deferred.t -> ?message:string -> string -> unit Async.Deferred.tval unlock_exn : string -> unit Async.Deferred.tval unlock : string -> unit Async.Deferred.Or_error.tval critical_section : ?message:string -> string -> abort:unit Async.Deferred.t -> f:(unit -> 'a Async.Deferred.t) -> 'a Async.Deferred.tval get_hostname_and_pid : string -> (string * Core.Pid.t) option Async.Deferred.tval get_message : string -> string option Async.Deferred.t