static FUTURES: impl Trait = Option
#[interrupt] fn im_an_interrupt() {
}
fn real_main() { loop { cassette_1.poll_on(); } }
async fn main() { loop { match select!(queue1, queue2, queue3) { Queue1(msg) => { cassette::spawn_hi_prio(async || { // impossible right now dispatch(msg).await; } } LowPrioQueue(msg) => { foo(msg).await; bar(msg).await; // HERE (waiting for a 10s timer) baz(msg).await; } _ => todo!() } } }
TODO: There's basically no way I can "short circuit" handling of a slow task to handle interrupts correctly, and there is no way to move async processing into a task.
Does this mean interrupts serve only as a waker optimization?