Module Backend.ProcLocker

exception UnlockNotLocked of IR.Procname.t
val setup : unit -> unit

This should be called once before trying to lock Anything.

val try_lock : IR.Procname.t -> bool

true = the lock belongs to the calling process. false = the lock belongs to a different worker

val unlock : IR.Procname.t -> unit

This will work as a cleanup function because after calling unlock all the workers that need an unlocked Proc should find it's summary already Cached. Throws if the lock had not been taken.

val clean : unit -> unit

This should be called when locks will no longer be used to remove any files or state that's not necessary.

val is_locked : IR.Procname.t -> bool