1#[cfg(feature = "std")]
2macro_rules! try_lock {
3 ($lock:expr) => {
4 try_lock!($lock, else return)
5 };
6 ($lock:expr, else $els:expr) => {
7 if let Ok(l) = $lock {
8 l
9 } else if std::thread::panicking() {
10 $els
11 } else {
12 panic!("lock poisoned")
13 }
14 };
15}
16
17macro_rules! feature {
18 (
19 #![$meta:meta]
20 $($item:item)*
21 ) => {
22 $(
23 #[cfg($meta)]
24 #[cfg_attr(docsrs, doc(cfg($meta)))]
25 $item
26 )*
27 }
28}
29