extern crate lib;
use std::thread;
static mut statik: isize = 0;
struct A;
impl Drop for A {
fn drop(&mut self) {
unsafe { statik = 1; }
}
fn main() {
thread::spawn(move|| {
let _a = A;
lib::callback(|| panic!());
}).join().unwrap_err();
unsafe {
assert_eq!(lib::statik, 1);
assert_eq!(statik, 1);