Skip to main content

resume_if_r_unwind

Function resume_if_r_unwind 

Source
pub(crate) unsafe fn resume_if_r_unwind(
    payload: Box<dyn Any + Send>,
    deferred_mark: usize,
    boundary: &Boundary,
) -> Box<dyn Any + Send>
Expand description

Resume payload if it carries an R exit (RUnwind) that belongs to boundary; return it otherwise, or RUnwind::stray for an exit from elsewhere. Conditions deferred since deferred_mark belong to the call the exit abandons and are discarded first, as on the R-error path.

§Safety

As RUnwind::resume: R’s main thread, at boundary, with nothing left to drop above the C entry point.