you generally always need to:

* install the waker
* check if the event is true
* if no: yield, if yes, return now