Miri's local scheduling policy: preserve the fast path, ordered readiness/I/O/deadline effects, cyclic candidate order, fixed scheduling, and sleep/deadlock outcomes. Host effects remain explicit obligations.
Scheduler actions that require an interpreter or host callback before Miri can choose a local runnable thread.
- processDelayedReadiness : SchedulerEnvironmentAction
- pollHostIoNonBlocking : SchedulerEnvironmentAction
- unblockExpiredDeadlines : SchedulerEnvironmentAction
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Result of the scheduler's first-stage dispatch.
- executeCurrent (manager : ThreadManager) : SchedulerPlan
- serviceEnvironment (manager : ThreadManager) (communicate : Bool) (actions : List SchedulerEnvironmentAction) : SchedulerPlan
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- thread (reason : ThreadError) : SchedulerError
- nondeterministicChoiceOutOfBounds (rank candidateCount : Nat) : SchedulerError
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.Concurrency.instDecidableEqSchedulerError.decEq (Miri.Concurrency.SchedulerError.thread a) (Miri.Concurrency.SchedulerError.thread b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Final action of a local scheduling decision.
- executeStep (manager : ThreadManager) (thread : ThreadId) (eligibleChoices : List ThreadId) : SchedulerAction
- sleepAndWaitForIo (manager : ThreadManager) (duration : Option Nat) : SchedulerAction
- globalDeadlock (manager : ThreadManager) : SchedulerAction
- allThreadsTerminatedInvariant (manager : ThreadManager) : SchedulerAction
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
The local scheduler's terminal stop is Miri's diagnostic deadlock result,
not a UB result. Local deadlocks detected by synchronization shims enter
through TerminationInfo.localDeadlock directly.
Equations
- Miri.Concurrency.Scheduler.terminationInfo (Miri.Concurrency.SchedulerAction.globalDeadlock manager) = some Miri.Concurrency.TerminationInfo.globalDeadlock
- Miri.Concurrency.Scheduler.terminationInfo (Miri.Concurrency.SchedulerAction.executeStep manager thread eligibleChoices) = none
- Miri.Concurrency.Scheduler.terminationInfo (Miri.Concurrency.SchedulerAction.sleepAndWaitForIo manager duration) = none
- Miri.Concurrency.Scheduler.terminationInfo (Miri.Concurrency.SchedulerAction.allThreadsTerminatedInvariant manager) = none
Instances For
Return Miri's exact cyclic thread visitation order: IDs after the current thread, then IDs through the current thread.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Enabled IDs in the source iterator's cyclic order.
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
Finish the local scheduler policy after the listed environment callbacks
have returned. rank is an explicit choice among all enabled source
candidates when scheduling is nondeterministic; it is ignored under Miri's
fixed-scheduling mode. The caller supplies deadline and host-I/O facts from
the actual machine state.
Equations
- One or more equations did not get rendered due to their size.