Skip to main content

on_vm_stack

Function on_vm_stack 

Source
pub fn on_vm_stack<R: Send>(body: impl FnOnce() -> R + Send) -> R
Expand description

Run body on a thread that holds the RUNTIME_STACK_SIZE contract.

A caller that drives the VM from a thread it did not create borrows whatever stack that thread was given. The test harness is where this keeps happening: a case that builds a Tokio runtime on the libtest thread creates no thread of its own, so it runs the VM on libtest’s stack. That stack is large enough only because every CI lane exports RUST_MIN_STACK, and a developer machine without it aborts the whole test binary on one ordinary agent loop (harn#7962). An abort is not a failed case: every later case in the binary silently never runs.

Panics propagate to the caller unchanged, so a failing assertion inside body still fails its own test.