Skip to main content

SchedulerControl

Trait SchedulerControl 

Source
pub trait SchedulerControl {
    // Required methods
    fn register_process(
        &mut self,
        proc: Box<dyn CompiledProcess>,
        kind: ProcessKind,
        sensitivity: Option<StaticSensitivity>,
        region_id: u32,
    ) -> ProcessId;
    fn run_until(&mut self, deadline: Option<SchedTime>) -> RunResult;
    fn step_region(&mut self) -> StepResult;
    fn run_finals(&mut self);
    fn now(&self) -> SchedTime;
    fn set_determinism_controller(
        &mut self,
        ctrl: Box<dyn DeterminismController>,
    );
}
Expand description

The debugger/VPI-facing control surface (SC-083): run-to-completion, run-until(time), single-region-step, and process registration.

Required Methods§

Source

fn register_process( &mut self, proc: Box<dyn CompiledProcess>, kind: ProcessKind, sensitivity: Option<StaticSensitivity>, region_id: u32, ) -> ProcessId

Task 9 (A2-part2, CG-102) added region_id: the process’s own ProcessSideTable::region_id (vj-codegen::process_lower’s own field), threaded through to ProcessTable::set_region_id so dispatch_ready_set can later look it up per-activation via ProcessTable::region_id. v1’s one real production call site (vj::run::run_design) always passes 0 (ARCHITECTURE §4 item 1’s single-conservative-partition value – the same “correct degenerate v1 value, not a stub” posture region_id’s own producing- side doc comment already documents).

Source

fn run_until(&mut self, deadline: Option<SchedTime>) -> RunResult

Source

fn step_region(&mut self) -> StepResult

Source

fn run_finals(&mut self)

Source

fn now(&self) -> SchedTime

Source

fn set_determinism_controller(&mut self, ctrl: Box<dyn DeterminismController>)

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§