you generally always need to: * install the waker * check if the event is true * if no: yield, if yes, return now