//@ run-pass
#![allow(unused_must_use)]
//@ needs-threads
//@ pretty-expanded FIXME #23616

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

fn start(tx: &Sender<isize>, i0: isize) {
    let mut i = i0;
    while i > 0 {
        tx.send(0).unwrap();
        i = i - 1;
    }
}

pub fn main() {
    // Spawn a thread that sends us back messages. The parent thread
    // is likely to terminate before the child completes, so from
    // the child's point of view the receiver may die. We should
    // drop messages on the floor in this case, and not crash!
    let (tx, rx) = channel();
    let t = thread::spawn(move || start(&tx, 10));
    rx.recv();
    t.join();
}
