diff options
Diffstat (limited to 'tests/ui/threads-sendsync/sendfn-spawn-with-fn-arg.rs')
-rw-r--r-- | tests/ui/threads-sendsync/sendfn-spawn-with-fn-arg.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/ui/threads-sendsync/sendfn-spawn-with-fn-arg.rs b/tests/ui/threads-sendsync/sendfn-spawn-with-fn-arg.rs new file mode 100644 index 000000000..1e598b9e7 --- /dev/null +++ b/tests/ui/threads-sendsync/sendfn-spawn-with-fn-arg.rs @@ -0,0 +1,21 @@ +// run-pass +// ignore-emscripten no threads support + +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(); +} |