当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust always_abort用法及代码示例


本文简要介绍rust语言中 Function std::panic::always_abort 的用法。

用法

pub fn always_abort()

使所有未来的Panics直接中止,而无需运行Panics钩子或展开。

无法撤消此操作;效果一直持续到进程退出或执行(或等效)。

分叉后使用

此函数对于在 libc::fork 之后调用特别有用。在 fork 之后,在多线程程序中(在许多平台上)调用分配器是不安全的。通常也非常不希望展开超过 fork ,因为这会导致展开传播到只希望在父级中运行的代码。

panic::always_abort() 有助于避免这两种情况。它直接避免了任何进一步的展开,如果出现Panics,只要可以在不分配的情况下格式化Panics的参数,就会发生中止而不分配。

例子

#![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!();

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Function std::panic::always_abort。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。