Module Make.Expert
module Checked_out_entry : sig ... endA spooled entry that is checked out, independent of any particular queue. No other process using this interface will be able to interfere with a
Checked_out_entry.t(unlike anEntry.t, which may be stolen out from under you).
val checkout : Entry.t -> Checked_out_entry.t Async.Deferred.Or_error.tCheck out an
Entry.t. Usecheckoutif you expect to be the only user of anEntry.tand it is an error if the Entry.t is grabbed by another process (or does not exist). Seewith_entryfor a higher-level interface.
val checkout' : Entry.t -> [ `Not_found | `Ok of Checked_out_entry.t ] Async.Deferred.Or_error.tCheck out an
Entry.t. Usecheckout'if you expect that another process might race to grab anEntry.t. Seewith_entry'for a higher-level interface.
val list_checkouts_unsafe : spool -> Spoolable.Queue.t -> Checked_out_entry.t list Async.Deferred.Or_error.tGet a hold of all currently checked out entries in the given
queue. This operation breaks the invariant that eachthas a single owner. It should only be used in cases where it is easy to reason about what processes are potentially manipulating the spool.
module Queue_reader : sig ... end