//@ run-pass //@ no-prefer-dynamic //@ needs-threads static mut HIT: bool = false; struct Foo; impl Drop for Foo { fn drop(&mut self) { unsafe { HIT = true; } } } thread_local!(static FOO: Foo = Foo); fn main() { std::thread::spawn(|| { FOO.with(|_| {}); }) .join() .unwrap(); assert!(unsafe { HIT }); }