Canonical machine ownership/clock binding for poll and epoll. Other payload injection/downcast is explicit so an unavailable descriptor cannot masquerade as an epoll instance. The source Epoll does not contain ReadinessWatched.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
Equations
- Miri.Interpreter.PollMachine.name x✝ = "epoll"
Instances For
Equations
- Miri.Interpreter.PollMachine.metadata x✝ = "S_IFREG"
Instances For
def
Miri.Interpreter.PollMachine.insertEpoll
{K U H D O : Type}
(h : ReadinessMachine.Hooks K U H D O)
(descriptor : DescriptorHooks O)
(watcher : Nat)
:
MachineHooks.M K U Int32
Owning transfer into the real descriptor table; no extra watcher retain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.PollMachine.dropEpoll
{K U H D O : Type}
(h : ReadinessMachine.Hooks K U H D O)
(base : Readiness.Hooks (MachineHooks.State K U) (Files.Ref (Files.Description H D O)))
(epoll : Epoll)
:
MachineHooks.M K U Unit
Call at actual Epoll watcher-field drop, after strong FD count reaches zero.
Equations
- Miri.Interpreter.PollMachine.dropEpoll h base epoll = (Miri.Interpreter.ReadinessMachine.bind h base).dropWatcher epoll.watcher
Instances For
def
Miri.Interpreter.PollMachine.bind
{K U H D O Host System I : Type}
(h : ReadinessMachine.Hooks K U H D O)
(descriptor : DescriptorHooks O)
(deadline : DeadlineMachine.Hooks K U Host System)
(base : EpollShims.Hooks (MachineHooks.State K U) (Files.Ref (Files.Description H D O)) I)
:
EpollShims.Hooks (MachineHooks.State K U) (Files.Ref (Files.Description H D O)) I
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.PollMachine.bindEntryPoll
{S F P H I : Type}
(budget : Nat)
(io : BlockingIo.Hooks S F P H)
(base : PollDispatch.Hooks S F I)
:
PollDispatch.Hooks S F I
Uses actual mio poll(0) and source Interrupted policy via BlockingIo.
Equations
- One or more equations did not get rendered due to their size.