Nfs has analogs of functions in Core.Lock_file.Nfs; see
there for documentation. In addition to adding Deferred's, blocking_create was
renamed waiting_create to avoid the impression that it blocks Async.
val create : ?message:string ‑> string ‑> unit Async_extra__.Import.Deferred.Or_error.tval create_exn : ?message:string ‑> string ‑> unit Async_extra__.Import.Deferred.tval waiting_create : ?abort:unit Async_extra__.Import.Deferred.t ‑> ?message:string ‑> string ‑> unit Async_extra__.Import.Deferred.tval unlock_exn : string ‑> unit Async_extra__.Import.Deferred.tval unlock : string ‑> unit Async_extra__.Import.Deferred.Or_error.tval critical_section : ?message:string ‑> string ‑> abort:unit Async_extra__.Import.Deferred.t ‑> f:(unit ‑> 'a Async_extra__.Import.Deferred.t) ‑> 'a Async_extra__.Import.Deferred.tval get_hostname_and_pid : string ‑> (string * Core.Pid.t) option Async_extra__.Import.Deferred.tval get_message : string ‑> string option Async_extra__.Import.Deferred.t