本文簡要介紹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 alloc_zeroed用法及代碼示例
- Rust align_of用法及代碼示例
- Rust align_of_val用法及代碼示例
- Rust alloc用法及代碼示例
- Rust align_of_val_raw用法及代碼示例
- Rust assert_ne用法及代碼示例
- Rust array.map用法及代碼示例
- Rust assert_matches用法及代碼示例
- Rust addr_of_mut用法及代碼示例
- Rust array.split_array_ref用法及代碼示例
- Rust array用法及代碼示例
- Rust array.zip用法及代碼示例
- Rust assert_eq用法及代碼示例
- Rust array.split_array_mut用法及代碼示例
- Rust available_parallelism用法及代碼示例
- Rust addr_of用法及代碼示例
- Rust abort用法及代碼示例
- Rust array.each_mut用法及代碼示例
- Rust assert用法及代碼示例
- Rust array.each_ref用法及代碼示例
- Rust args用法及代碼示例
- Rust args_os用法及代碼示例
- Rust UdpSocket.set_multicast_loop_v6用法及代碼示例
- Rust i64.overflowing_add_unsigned用法及代碼示例
- Rust Box.downcast用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Function std::panic::always_abort。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。