| #[cfg(feature = "std")] | |
| macro_rules! try_lock { | |
| ($lock:expr) => { | |
| try_lock!($lock, else return) | |
| }; | |
| ($lock:expr, else $els:expr) => { | |
| if let Ok(l) = $lock { | |
| l | |
| } else if std::thread::panicking() { | |
| $els | |
| } else { | |
| panic!("lock poisoned") | |
| } | |
| }; | |
| } | |
| macro_rules! feature { | |
| ( | |
| #![$meta:meta] | |
| $($item:item)* | |
| ) => { | |
| $( | |
| #[cfg($meta)] | |
| #[cfg_attr(docsrs, doc(cfg($meta)))] | |
| $item | |
| )* | |
| } | |
| } |