Linux futex physical/synchronization binding. Futex callbacks are the exact source FnOnce captures, not arbitrary opaque token completion. None mode never requires a fabricated GlobalState. Actual stack switching uses ThreadStacks.
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
- inject : Concurrency.FutexRuntime.Ref → P
- project : P → Option Concurrency.FutexRuntime.Ref
Instances For
- views : Views U
- payload : Payload P
- access : PlaceMachine.AccessConfig K (User U)
- allocation : PlaceMachine.AllocationConfig K (User U)
- compiler : PlaceMachine.CompilerHooks K (User U) C
- pointers : PointerMachine.Hooks K (ValidityMachine.Control (ThreadStacks.Storage U))
- pointerCompiler : PointerPlaceMachine.Compiler K (ThreadStacks.Storage U) C
- dynamic : DynamicLayoutHooks Memory.Provenance (State K U) C
- vtable : VTableHooks Memory.Provenance (State K U) C (FnVal O) (ABI.FnAbi MIR.TyId)
- dynamicFuel : Nat
- atomic : AtomicAccessHooks Memory.Provenance (State K U) C (RuntimePlace Memory.Provenance)
- backend : State K U → Except StepError (RaceMode.Handler B)
- extras : MemoryExtras.Hooks K (User U) P
- i32Layout : LocalLayout
- readTimespec : MPlaceTy Memory.Provenance → M K U (Option Clock.Duration)
Compiler-checked guest timespec reader. This is the only time-shim operation consumed by futex; clock/deadline state is carried separately.
- deadline : DeadlineMachine.Hooks K (User U) Host System
- errors : IoError.Hooks (State K U) ErrorHost
Instances For
The real memory/backend projection needed to construct and use allocation-local typed synchronization objects. It intentionally excludes time, deadline, errno, and isolation capabilities: pthread mutexes/attributes do not need those host effects, while timed operations remain supplied by the separately constructed dispatch hooks.
- views : Views U
- payload : Payload P
- access : PlaceMachine.AccessConfig K (User U)
- allocation : PlaceMachine.AllocationConfig K (User U)
- compiler : PlaceMachine.CompilerHooks K (User U) C
- pointers : PointerMachine.Hooks K (ValidityMachine.Control (ThreadStacks.Storage U))
- pointerCompiler : PointerPlaceMachine.Compiler K (ThreadStacks.Storage U) C
- dynamic : DynamicLayoutHooks Memory.Provenance (State K U) C
- vtable : VTableHooks Memory.Provenance (State K U) C (FnVal O) (ABI.FnAbi MIR.TyId)
- dynamicFuel : Nat
- atomic : AtomicAccessHooks Memory.Provenance (State K U) C (RuntimePlace Memory.Provenance)
- backend : State K U → Except StepError (RaceMode.Handler B)
- extras : MemoryExtras.Hooks K (User U) P
Instances For
A full futex capability always contains the same genuine physical fields. Projecting them supports time-independent pthread object construction without creating a second memory, backend, atomic, or metadata state.
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
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.Interpreter.LinuxFutexMachine.sourceError x✝ = Miri.Interpreter.StepError.invalidProgram (toString "futex synchronization invariant: " ++ toString (reprStr x✝))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Futex metadata's source on_access and provenance visitor are empty. Other payload variants keep their actual existing synchronization behavior.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Build the source syscall-facing futex hooks directly from the physical futex constructor. The syscall ABI checker and target constants remain explicit inputs; all memory, atomic, callback, deadline, and errno effects come from this same runtime-owned machine hook record.
Equations
- One or more equations did not get rendered due to their size.