Jokes apart. I don't see any registering code in RTIC itself. This is the rtic_sync::channel::Receiver::recv() ``` /// Receives a value, waiting if the queue is empty. /// If all senders are dropped this will error with `NoSender`. pub async fn recv(&mut self) -> Result { // There was nothing in the queue, setup the waiting. poll_fn(|cx| { // Register waker. // TODO: Should it happen here or after the if? This might cause a spurious wake. self.0.receiver_waker.register(cx.waker()); // Try to dequeue. match self.try_recv() { Ok(val) => { return Poll::Ready(Ok(val)); } Err(ReceiveError::NoSender) => { return Poll::Ready(Err(ReceiveError::NoSender)); } _ => {} } Poll::Pending }) .await } ``` It registers the waker at `self.0.receiver_waker.register(cx.waker());` but I can't figure out what it is.