std::thread::panicking - Rust
Description: API documentation for the Rust `panicking` fn in crate `std`.
Keywords: rust, rustlang, rust-lang, panicking

# Function std::thread::panicking 1.0.0 [−] [src]

    pub fn panicking() -> bool

Determines whether the current thread is unwinding because of panic.

A common use of this feature is to poison shared resources when writing unsafe code, by checking `panicking` when the `drop` is called.

This is usually not needed when writing safe code, as `Mutex`es already poison themselves when a thread panics while holding the lock.

This can also be used in multithreaded applications, in order to send a message to other threads warning that a thread has panicked (e.g. for monitoring purposes).

# 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

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
↑
  Move up in search results
↓
  Move down in search results
↹
  Switch tab
⏎
  Go to active search result
+ / -
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)