In a single-threaded application, does calling the waker poll all futures, only futures which last returned
Poll::NotReady, or does it only poll the future which is associated with the context.waker() call?
Also, if I needed to make an async callback, would it be "best" to:
- impl Future or Stream for a struct
- in the impl, make sure to store the waker inside the struct using the context
- call poll on the struct once to load the waker in the struct
- from the closure which created the struct, grab the waker and store it in a hashmap to be called once relevant data (or a timeout) occurs