pub enum MailboxOp {
Emit(NodeId, HandleId),
Complete(NodeId),
Error(NodeId, HandleId),
Defer(SendDeferFn),
}Expand description
A re-entry request posted to the CoreMailbox by an autonomous
async producer (timer task → Emit) or by a producer-operator sink
(D232-AMEND/A′ → Emit/Complete/Error). Applied owner-side via
the sync Core::{emit,complete,error} by crate::node::Core::drain_mailbox
— drained in-wave to quiescence by the BatchGuard drain loop
for producer sinks (immediate, cascade-ordering-preserving), and at
the embedder pump point for timer tasks (D230).
Variants§
Emit(NodeId, HandleId)
Core::emit(node, handle). Posted by timer tasks + producer sinks.
Complete(NodeId)
Core::complete(node). Posted by producer sinks.
Error(NodeId, HandleId)
Core::error(node, handle). Posted by producer sinks.
Defer(SendDeferFn)
Send owner-side closure (D233; D249/S2c). Posted by a
cross-thread timer task (temporal.rs window_time/etc.) whose
closure captures only Send state; applied in-wave by the
drain loop (the owner holds &Core). The !Send owner-side
sink defers (graph describe/observe, control/higher-order
dynamic-inner) go to the separate owner-only DeferQueue
instead — D248/D249.