miri::concurrency::init_once

Trait EvalContextExt

Source
pub trait EvalContextExt<'tcx>: MiriInterpCxExt<'tcx> {
    // Provided methods
    fn init_once_status(&mut self, id: InitOnceId) -> InitOnceStatus { ... }
    fn init_once_enqueue_and_block(
        &mut self,
        id: InitOnceId,
        callback: Box<dyn UnblockCallback<'tcx> + 'tcx>,
    ) { ... }
    fn init_once_begin(&mut self, id: InitOnceId) { ... }
    fn init_once_complete(&mut self, id: InitOnceId) -> InterpResult<'tcx> { ... }
    fn init_once_fail(&mut self, id: InitOnceId) -> InterpResult<'tcx> { ... }
    fn init_once_observe_completed(&mut self, id: InitOnceId) { ... }
}

Provided Methods§

Source

fn init_once_status(&mut self, id: InitOnceId) -> InitOnceStatus

Source

fn init_once_enqueue_and_block( &mut self, id: InitOnceId, callback: Box<dyn UnblockCallback<'tcx> + 'tcx>, )

Put the thread into the queue waiting for the initialization.

Source

fn init_once_begin(&mut self, id: InitOnceId)

Begin initializing this InitOnce. Must only be called after checking that it is currently uninitialized.

Source

fn init_once_complete(&mut self, id: InitOnceId) -> InterpResult<'tcx>

Source

fn init_once_fail(&mut self, id: InitOnceId) -> InterpResult<'tcx>

Source

fn init_once_observe_completed(&mut self, id: InitOnceId)

Synchronize with the previous completion of an InitOnce. Must only be called after checking that it is complete.

Implementors§

Source§

impl<'tcx> EvalContextExt<'tcx> for MiriInterpCx<'tcx>