package goblint

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Type to represent an abstract thread ID.

include S
include Printable.S
type t
include MapDomain.Groupable with type t := t
include Printable.S with type t := t
val equal : t -> t -> bool
val hash : t -> int
val compare : t -> t -> int
val show : t -> string
val pretty : unit -> t -> Pretty.doc
val printXml : 'a BatInnerIO.output -> t -> unit
val name : unit -> string
val to_yojson : t -> Printable.json
val invariant : Invariant.context -> t -> Invariant.t
val tag : t -> int

Unique ID, given by HConsed, for context identification in witness

val arbitrary : unit -> t QCheck.arbitrary
val relift : t -> t
type group
val show_group : group -> string
val to_group : t -> group option
val trace_enabled : bool
val threadinit : Cil.varinfo -> multiple:bool -> t
val to_varinfo : t -> Cil.varinfo
val is_main : t -> bool
val is_unique : t -> bool
val may_create : t -> t -> bool

Overapproximates whether the first TID can be involved in the creation fo the second TID

val is_must_parent : t -> t -> bool

Is the first TID a must parent of the second thread. Always false if the first TID is not unique

type marshal
val init : marshal option -> unit
val finalize : unit -> marshal
val name_varinfo : t -> string

How the created varinfos should be namend. Returned strings should not contain Cil.locations, but may contain node ids.

val threadenter : Node.t -> Cil.varinfo -> t