//@ run-pass | |
#![allow(unused_must_use)] | |
#![allow(dead_code)] | |
#![allow(non_camel_case_types)] | |
//@ needs-threads | |
use std::sync::mpsc::channel; | |
use std::thread; | |
struct test { | |
f: isize, | |
} | |
impl Drop for test { | |
fn drop(&mut self) {} | |
} | |
fn test(f: isize) -> test { | |
test { f: f } | |
} | |
pub fn main() { | |
let (tx, rx) = channel(); | |
let t = thread::spawn(move || { | |
let (tx2, rx2) = channel(); | |
tx.send(tx2).unwrap(); | |
let _r = rx2.recv().unwrap(); | |
}); | |
rx.recv().unwrap().send(test(42)).unwrap(); | |
t.join(); | |
} |