Function std::thread::panicking 1.0.0[−][src]
pub fn panicking() -> bool
Expand description
确定当前线程是否由于 panic 而处于展开状态。
此功能的一个常见用途是在编写不安全代码时毒害共享资源,方法是在调用 drop
时检查 panic
。
编写安全代码时通常不需要这样做,因为当线程在持有锁时 panic,Mutex
已经中毒了。
这也可以在多线程应用程序中使用,以便向其他线程发送消息,警告某个线程已发生 panic (例如,出于监视目的)。
Examples
ⓘ
use std::thread; struct SomeStruct; impl Drop for SomeStruct { fn drop(&mut self) { if thread::panicking() { println!("dropped while unwinding"); } else { println!("dropped while not unwinding"); } } } { print!("a: "); let a = SomeStruct; } { print!("b: "); let b = SomeStruct; panic!() }Run