pub enum WaitSpec {
Delay(SimTime),
Edge {
edge: EdgeKind,
signal: StateCellId,
iff: Option<PredicateFn>,
},
EdgeList(Vec<(EdgeKind, StateCellId, Option<PredicateFn>)>),
ImplicitComb(SubscriptionSetId),
}Expand description
The ABI-facing resume contract (process.md §4 WaitSpec; ledger CG-169,
CG-170, SC-085, SC-119, PR-012, PR-037) a compiled process kernel reports back
through ProcessStatus::Suspended.
Reconciliation: distinct from crate::sched::Suspend. sched::Suspend is
the Rust-trait-level abstraction CompiledProcess::resume() returns to the
in-process scheduler orchestration loop (scheduler.md §5); WaitSpec here is
the lower-level, codegen-facing shape process.md §4 sketches for the compiled
process_kernel-style ABI. ARCHITECTURE.md does not collapse the two designs’
differing field lists into one type, so per the reconciliation rule both are
kept, layered rather than merged: sched::Suspend is built by decoding a
returned WaitSpec/RescheduleReq, not by replacing it.