but if you're writing your own "driver" over the SIO peripheral, this pattern of: * async task registers a waker by storing it somewhere the driver can see it * the interrupt fires, calls the waker * the task resumes and retrieves the data Is very much how async hw drivers are written