static N:int = 100000; // // Chinese Whispers in Rust // Based on example by Rob Pike // in http://www.youtube.com/watch?v=f6kdp27TYZs // fn main() { let (leftmost_port, leftmost_chan) = Chan::new(); let mut leftc: Chan<int> = leftmost_chan; let mut rightp: Port<int>; for _ in range(0, N) { let (right_port, right_chan) = Chan::new(); rightp = right_port; let c = leftc; let p = rightp; do spawn { whisper(c, p); } leftc = right_chan; } let rightmost_chan = leftc; do spawn { rightmost_chan.send(1); } println!("{}", leftmost_port.recv()); } fn whisper(left: Chan<int>, right: Port<int>) { left.send( right.recv() + 1 ); }