Module Spec.A

module DlLhProd : sig ... end

ego tid * (local descendant lockset * global descendant lockset * lock history)

include sig ... end
val expand_fst : bool
val expand_snd : bool
type t = TID.t * DlLhProd.t
val equal : t -> t -> Ppx_deriving_runtime.bool
val compare : t -> t -> Ppx_deriving_runtime.int
val hash : t -> int
val relift : t -> t
val tag : 'a -> 'b
val name : unit -> string
val arbitrary : unit -> (TID.t * DlLhProd.t) QCheck.arbitrary
val happens_before : (TID.t * D.t) -> (D.key * Queries.LH.t) -> bool

checks if program point 1 must happen before program point 2

  • parameter (t1,dl1)

    thread id and descendant lockset of program point 1

  • parameter (t2,lh2)

    thread id and mustlock history of program point 2

  • parameter M

    module of dl1

val happens_before_global : G.t -> (D.key * Queries.LH.t) -> bool

checks if the entire execution of a thread must happen before a program point

  • parameter dlg1

    glabal descendant lockset of the thread

  • parameter (t2,lh2)

    thread id and mustlock history of the program point

val may_race : (TID.t * (D.t * G.t * Queries.LH.t)) -> (D.key * (D.t * G.t * Queries.LH.t)) -> bool
val pretty : unit -> ('a * (D.t * G.t * Queries.LH.t)) -> Printable.Pretty.doc
val show : ('a * (D.t * G.t * Queries.LH.t)) -> string
val to_yojson : ('a * (D.t * G.t * Queries.LH.t)) -> [> `Assoc of (string * Yojson.Safe.t) list ]
val printXml : 'a BatInnerIO.output -> ('b * (D.t * G.t * Queries.LH.t)) -> unit
val should_print : ('a * (D.t * G.t * Queries.LH.t)) -> bool