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

    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
`+`
  Expand all sections
`-`
  Collapse 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`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)