But yeah, typically: Most programs today are written where you hopefully start listening before triggering the event: for example in a select/join, you start `wait_for_low`, then send "enable accelerometer interrupt signal". Something like: ```rust let wait_fut = async { gpio.wait_for_low().await; }; let go_fut = async { // ensure the gpio listener is polled first Timer::after_ms(1).await; acc .enable_fall_detect_interrupt() .await; }; let _ = join(wait_fut, go_fut).await; ``` which is clunky and unfortunate