//@ run-pass
#![allow(unused_parens)]
//@ needs-threads

use std::sync::mpsc::{channel, Sender};
use std::thread;

pub fn main() {
    let (tx, rx) = channel();

    // Spawn 10 threads each sending us back one isize.
    let mut i = 10;
    while (i > 0) {
        println!("{}", i);
        let tx = tx.clone();
        thread::spawn({
            let i = i;
            move || child(i, &tx)
        });
        i = i - 1;
    }

    // Spawned threads are likely killed before they get a chance to send
    // anything back, so we deadlock here.

    i = 10;
    while (i > 0) {
        println!("{}", i);
        rx.recv().unwrap();
        i = i - 1;
    }

    println!("main thread exiting");
}

fn child(x: isize, tx: &Sender<isize>) {
    println!("{}", x);
    tx.send(x).unwrap();
}
