#[rtic::app]
mod app {
use std::time::Instant;
#[shared]
struct Shared {}
#[local]
struct Local {
start: Instant,
}
#[init]
fn init(_: init::Context) -> (Shared, Local, init::Monotonics) {
let start = Instant::now();
task1::spawn(0).unwrap();
(Shared {}, Local { start }, init::Monotonics())
}
#[task]
fn task1(_cx: task1::Context, x: i32) {
task2::spawn(x + 1).unwrap();
}
#[task(local = [start])]
fn task2(cx: task2::Context, x: i32) {
if x < 10_000_000 {
task1::spawn(x + 1).unwrap();
} else {
println!("Time: {:?}", cx.local.start.elapsed());
}
}
}