Struct sp_panic_handler::AbortGuard

source ·
pub struct AbortGuard { /* private fields */ }
Expand description

RAII guard for whether panics in the current thread should unwind or abort.

Sets a thread-local abort flag on construction and reverts to the previous setting when dropped. Does not implement Send on purpose.

Note: Because we restore the previous value when dropped, you are encouraged to leave the AbortGuard on the stack and let it destroy itself naturally.

Implementations§

source§

impl AbortGuard

source

pub fn force_unwind() -> AbortGuard

Create a new guard. While the guard is alive, panics that happen in the current thread will unwind the stack (unless another guard is created afterwards).

source

pub fn force_abort() -> AbortGuard

Create a new guard. While the guard is alive, panics that happen in the current thread will abort the process (unless another guard is created afterwards).

source

pub fn never_abort() -> AbortGuard

Create a new guard. While the guard is alive, panics that happen in the current thread will never abort the process (even if AbortGuard::force_abort() guard will be created afterwards).

Trait Implementations§

source§

impl Drop for AbortGuard

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.