Canonical source synchronization runtime on the final pointer/validation/ thread composition. Optional clocks and actual thread stacks share the same machine fields; no synthetic GlobalState is created for disabled tracking.
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
Equations
- Miri.Interpreter.SyncMachine.sourceError x✝ = Miri.Interpreter.StepError.invalidProgram (toString "synchronization invariant: " ++ toString (reprStr x✝))
Instances For
def
Miri.Interpreter.SyncMachine.bind
{K U B R V D : Type}
(selection : State K U → Except StepError (RaceMode.Handler B))
(base : Concurrency.SyncRuntime.Hooks (State K U) R V D)
:
MachineHooks.M K (User U) (Concurrency.SyncRuntime.Hooks (State K U) R V D)
Select the immutable source backend kind from the canonical machine at the actual binding point. Compiler/configuration leaves and typed object/callback stores remain the supplied source records; clock/thread access is replaced.
Equations
- One or more equations did not get rendered due to their size.