pub enum TerminationDetails {
Signal,
CtxNotFound,
YieldTypeMismatch,
BorrowError(&'static str),
Provided(Box<dyn Any + 'static>),
Remote,
}
Expand description
Information about a terminated guest.
Guests are terminated either explicitly by Vmctx::terminate()
, or implicitly by signal
handlers that return SignalBehavior::Terminate
. It usually indicates that an unrecoverable
error has occurred in a hostcall, rather than in WebAssembly code.
Variants§
Signal
Returned when a signal handler terminates the instance.
CtxNotFound
Returned when get_embed_ctx
or get_embed_ctx_mut
are used with a type that is not present.
YieldTypeMismatch
Returned when the type of the value passed to Instance::resume_with_val()
does not match
the type expected by Vmctx::yield_expecting_val()
or Vmctx::yield_val_expecting_val
, or
if Instance::resume()
was called when a value was expected.
Note: If you see this termination value, please report it as a Lucet bug. The types of
resumed values are dynamically checked by Instance::resume()
and
Instance::resume_with_val()
, so this should never arise.
BorrowError(&'static str)
Returned when dynamic borrowing rules of methods like Vmctx::heap()
are violated.
Provided(Box<dyn Any + 'static>)
Calls to lucet_hostcall_terminate
provide a payload for use by the embedder.