join/join.rs
1use procspawn::{self, spawn};
2
3fn main() {
4 procspawn::init();
5
6 let five = spawn(5, fibonacci);
7 let ten = spawn(10, fibonacci);
8 let thirty = spawn(30, fibonacci);
9 assert_eq!(five.join().unwrap(), 5);
10 assert_eq!(ten.join().unwrap(), 55);
11 assert_eq!(thirty.join().unwrap(), 832_040);
12 println!("Successfully calculated fibonacci values!");
13}
14
15fn fibonacci(n: u32) -> u32 {
16 if n <= 2 {
17 return 1;
18 }
19 fibonacci(n - 1) + fibonacci(n - 2)
20}