# Function std::panic::always_abort

source ·

    pub fn always_abort()

🔬This is a nightly-only experimental API. (`panic_always_abort` #84438)
Expand description

Make all future panics abort directly without running the panic hook or unwinding.

There is no way to undo this; the effect lasts until the process exits or execs (or the equivalent).

## Use after fork

This function is particularly useful for calling after `libc::fork`. After `fork`, in a multithreaded program it is (on many platforms) not safe to call the allocator. It is also generally highly undesirable for an unwind to unwind past the `fork`, because that results in the unwind propagating to code that was only ever expecting to run in the parent.

`panic::always_abort()` helps avoid both of these. It directly avoids any further unwinding, and if there is a panic, the abort will occur without allocating provided that the arguments to panic can be formatted without allocating.

Examples

    #![feature(panic_always_abort)]
    use std::panic;

    panic::always_abort();

    let _ = panic::catch_unwind(|| {
        panic!("inside the catch");
    });

    // We will have aborted already, due to the panic.
    unreachable!();

Run