Function simics::api::simulator::callbacks::run_alone

source ·
pub fn run_alone<F>(cb: F) -> Result<()>
where F: FnOnce() -> Result<()> + 'static,
Expand description

Schedule a callback to be run with all execution stopped (global context)

If posted while an instruction is being executed, the callback will be invoked after the current instruction has completed.

will make sure that the callback f, passed as argument, will be run in a context where all execution threads are stopped and the full Simics API is available (Global Context). This is useful for temporarily stopping the simulation to run API functions not allowed in Cell Context.

If the callback is posted while an instruction is being emulated then the callback be invoked when the current instruction has completed and before the next instruction is dispatched.

Although no other execution threads are running when the callback is invoked, their exact position in simulated time may vary between runs. If the callback accesses objects in cells other than the one that run_alone was called from, then care must be taken to preserve determinism.

§Context

All Contexts Callback: Global Context