Function std::panic::always_abort [−][src]
pub fn always_abort()
Expand description
使所有 future panics 直接终止而不运行 panic hook 或展开。
没有办法撤销这个; 效果持续到进程退出或执行 (或等效)。
fork 后使用
这个函数在 libc::fork
之后调用特别有用。在 fork
之后,在多线程程序中 (在许多平台上) 调用分配器是不安全的。
fork
之后的 unwind 到 unwind 通常也是非常不可取的,因为这会导致 unwind 传播到只希望在父级中运行的代码。
panic::always_abort()
有助于避免这两种情况。
它直接避免了任何进一步的展开,如果存在 panic,则无需分配即可终止终止,前提是 panic 的参数可以在不分配的情况下进行格式化。
Examples
#![feature(panic_always_abort)] use std::panic; panic::always_abort(); let _ = panic::catch_unwind(|| { panic!("inside the catch"); }); // 由于 panic,我们已经中止了。 unreachable!();Run