So something like: ```rust let data = defmt::unwrap!(future::poll_fn(|cx| { buf = unsafe { buf_ptr.read() }; if buf.is_empty() { // store the waker so when the interrupt occurs, it can wake us // also maybe enable the interrupt unless it is always enabled? resources.waker = Some(cx.waker()); Poll::Pending } else { Poll::Ready(buf.dequeue()) } }) .await ```