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?