Hi, I apologize in advance for being new to matrix and rust ... I hope to not be the elephant in the glass shop. I'm writing an RTIC application and I've problems to figure out how to wake task on future Ready. RTIC docs say "dispatchers" are the soft task executors but ... how do I register a waker to a dispatcher? I've seen an example in rtic_sync::channel::Receiver::recv() but I can't figure out how to replicate that. For instance: ``` pub async fn sio_fifo_buf_read() -> u32 { let mut buf_ptr = &raw mut lib::multicore::CORE0_RX; if lib::core() == 1 { buf_ptr = &raw mut lib::multicore::CORE1_RX; } let mut buf = unsafe { buf_ptr.read() }; // await on buffer let data = defmt::unwrap!(future::poll_fn(|cx| { buf = unsafe { buf_ptr.read() }; if buf.is_empty() { //cx.waker().wake_by_ref(); Poll::Pending } else { Poll::Ready(buf.dequeue()) } }) .await); // unsafe { buf_ptr.write(buf); } data } ``` This is my current (messy) async buffer reader. It should make the dispatcher's poll() hang the task until there is data in the buffer, then return Poll::Ready(u32). Instead it just hangs and it isn't polled, ever. If I uncomment the cx.waker.wake_by_ref() line, it keeps the task running and the other tasks are never spawned.