Data-only source synchronization captures and execution. Every constructor corresponds to a pinned sync.rs or OS-shim FnOnce capture; no MIR/program IR or closure-valued state is introduced. Object and callback identities are source Rc/Box identities supplied by the one owning machine arena.
@[reducible, inline]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
@[reducible, inline]
Instances For
- mutex (value : MutexState) : Object
- rwlock (value : RwLockState) : Object
- condvar (value : CondvarState) : Object
- semaphore (value : SemaphoreState) : Object
- futex (value : FutexState) : Object
- initOnce (value : InitOnce.State) : Object
Instances For
@[reducible, inline]
Exact OS callback captures. Constants and errno writes are evaluated when source executes the callback, not eagerly while it is being registered.
Equations
Instances For
@[reducible, inline]
Equations
Instances For
- handler : SyncClockHandler
- usizeBits : Nat
- communicate : Bool
- global : M S (Option GlobalState)
- putGlobal : Option GlobalState → M S Unit
- threads : M S ThreadManager
- putThreads : ThreadManager → M S Unit
- error : SyncError → Interpreter.StepError
Instances For
def
Miri.Concurrency.TypedSyncRuntime.executeUser
{S : Type}
(h : Hooks S)
(user : User)
(kind : UnblockKind)
:
Equations
- One or more equations did not get rendered due to their size.
- Miri.Concurrency.TypedSyncRuntime.executeUser h (Miri.Concurrency.SyncRuntime.UserCapture.pthreadSemaphore timed dest) Miri.Concurrency.UnblockKind.Ready = h.writeScalar 0 dest
- Miri.Concurrency.TypedSyncRuntime.executeUser h (Miri.Concurrency.SyncRuntime.UserCapture.futexErrno dest) Miri.Concurrency.UnblockKind.Ready = h.writeInt 0 dest
- Miri.Concurrency.TypedSyncRuntime.executeUser h (Miri.Concurrency.SyncRuntime.UserCapture.futexErrno dest) Miri.Concurrency.UnblockKind.TimedOut = h.errnoNegOne "ETIMEDOUT" dest
- Miri.Concurrency.TypedSyncRuntime.executeUser h (Miri.Concurrency.SyncRuntime.UserCapture.windowsAddress dest) Miri.Concurrency.UnblockKind.Ready = h.writeScalar 1 dest
- Miri.Concurrency.TypedSyncRuntime.executeUser h (Miri.Concurrency.SyncRuntime.UserCapture.macAddress ref dest) Miri.Concurrency.UnblockKind.TimedOut = h.errnoNegOne "ETIMEDOUT" dest
Instances For
def
Miri.Concurrency.TypedSyncRuntime.semaphoreDecrement
{S : Type}
(h : Hooks S)
(ref : Ref)
(deadline : Option ThreadDeadline)
(user : User)
:
A retry after Ready is a fresh blocking callback, not recursive execution of an opaque closure. The source deadline and user captures are retained.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Concurrency.TypedSyncRuntime.invoke
{S : Type}
(h : Hooks S)
(token : Nat)
(kind : UnblockKind)
:
Consume Box<Self> before the first body effect; callback failure cannot restore that box or the previously active thread.
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.