1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use parking_lot::RwLock; use std::thread; struct Bar(RwLock<()>); impl Drop for Bar { fn drop(&mut self) { let _n = self.0.write(); } } thread_local! { static B: Bar = Bar(RwLock::new(())); } #[test] fn main() { thread::spawn(|| { B.with(|_| ()); let a = RwLock::new(()); let _a = a.read(); }) .join() .unwrap(); }