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§
fn init_once_status(&mut self, id: InitOnceId) -> InitOnceStatus
Sourcefn init_once_enqueue_and_block(
&mut self,
id: InitOnceId,
callback: Box<dyn UnblockCallback<'tcx> + 'tcx>,
)
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.
Sourcefn init_once_begin(&mut self, id: InitOnceId)
fn init_once_begin(&mut self, id: InitOnceId)
Begin initializing this InitOnce. Must only be called after checking that it is currently uninitialized.
fn init_once_complete(&mut self, id: InitOnceId) -> InterpResult<'tcx>
fn init_once_fail(&mut self, id: InitOnceId) -> InterpResult<'tcx>
Sourcefn init_once_observe_completed(&mut self, id: InitOnceId)
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.