sig
  val create : ?message:string -> string -> bool
  val create_exn : ?message:string -> string -> unit
  val blocking_create :
    ?timeout:Time.Span.t -> ?message:string -> string -> unit
  val critical_section :
    ?message:string -> string -> timeout:Time.Span.t -> f:(unit -> 'a) -> 'a
  val get_hostname_and_pid :
    string -> (string * Core_kernel.Std.Pid.t) option
  val get_message : string -> string option
  val unlock_exn : string -> unit
end