| //@ run-pass | |
| //@ needs-threads | |
| use std::thread; | |
| pub fn main() { | |
| test05(); | |
| } | |
| fn test05_start<F: FnOnce(isize)>(f: F) { | |
| f(22); | |
| } | |
| fn test05() { | |
| let three: Box<_> = Box::new(3); | |
| let fn_to_send = move |n: isize| { | |
| println!("{}", *three + n); // will copy x into the closure | |
| assert_eq!(*three, 3); | |
| }; | |
| thread::spawn(move || { | |
| test05_start(fn_to_send); | |
| }) | |
| .join() | |
| .ok() | |
| .unwrap(); | |
| } |