當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。