Pinned shims/tls.rs::TlsData (44-220). Keys retain actual typed runtime pointers, full destructor instances and source spans. NULL normalization uses source pointer addresses; no pointer is reconstructed from an opaque token.
@[reducible, inline]
Equations
Instances For
- fnInstance : CallInstance
- span : MIR.SpanRef
Instances For
- key : TlsKey
- data : Array (Concurrency.ThreadId × Memory.Pointer (Option P))
- destructor : Option TlsDestructor
Instances For
- fnInstance : CallInstance
- data : Memory.Scalar P
- span : MIR.SpanRef
Instances For
- nextKey : TlsKey
- keys : Array (TlsKeyEntry P)
- threadAtexit : Array (Concurrency.ThreadId × Array (ThreadAtexitEntry P))
Instances For
- keyCounterOverflow : ThreadTlsError
- keySpaceExhausted : ThreadTlsError
- duplicateKey : ThreadTlsError
- nonexistentKey (key : TlsKey) : ThreadTlsError
- destructorsRemain : ThreadTlsError
- size (error : ABI.SizeError) : ThreadTlsError
- nullDestructorData : ThreadTlsError
Instances For
@[instance_reducible]
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
All source GC-relevant values, including atexit arguments. Function instances and callback stages contain only compiler identities.
- pointer {P : Type} (value : Memory.Pointer (Option P)) : TlsProvenanceRoot P
- scalar {P : Type} (value : Memory.Scalar P) : TlsProvenanceRoot P
Instances For
Exact source TlsData::default. Windows forbids allocating key zero.
Equations
Instances For
def
Miri.Interpreter.ThreadTlsData.createKey
{P : Type}
(data : ThreadTlsData P)
(destructor : Option TlsDestructor)
(keySize : ABI.Size)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.ThreadTlsData.load
{P : Type}
(data : ThreadTlsData P)
(key : TlsKey)
(thread : Concurrency.ThreadId)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.ThreadTlsData.store
{P : Type}
(data : ThreadTlsData P)
(key : TlsKey)
(thread : Concurrency.ThreadId)
(pointer : Memory.Pointer (Option P))
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.ThreadTlsData.addThreadAtexit
{P : Type}
(data : ThreadTlsData P)
(thread : Concurrency.ThreadId)
(entry : ThreadAtexitEntry P)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.ThreadTlsData.fetchDestructor
{P : Type}
(data : ThreadTlsData P)
(lastKey : Option TlsKey)
(thread : Concurrency.ThreadId)
:
Pthread keys are visited in BTreeMap numeric order and cleared before call. The caller restarts from None after reaching the end of the current round.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.ThreadTlsData.popThreadAtexit
{P : Type}
(data : ThreadTlsData P)
(thread : Concurrency.ThreadId)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.ThreadTlsData.deleteAllThreadTls
{P : Type}
(data : ThreadTlsData P)
(thread : Concurrency.ThreadId)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.ThreadTlsData.leakAllThreadTls
{P : Type}
[Memory.PointerProvenance P]
(data : ThreadTlsData P)
(thread : Concurrency.ThreadId)
(roots : Array Memory.AllocId)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Exact fields visited by source VisitProvenance for TlsData. No integer address is mistaken for an allocation ID; consumers visit the typed values.
Equations
- One or more equations did not get rendered due to their size.