Runtimes, Wakers, and the Reactor-Executor Pattern 180 Note that we need to pass in an Events collection to mio 's Poll::poll method, but since there is only one top-level future to run, we don't really care which event happened; we only care that something happened and that it most likely means that data is ready (remember-we always have to account for false wakeups anyway). That's all the changes we need to make to the runtime module for now. The last thing we need to do is register interest for read events after we've written the request to the server in our http module. Let's open http. rs and make some changes. http. rs First of all, let's adjust our dependencies so that we pull in everything we need: ch08/a-runtime/src/http. rs use crate::{future::Poll State, runtime, Future}; use mio::{Interest, Token}; use std::io::{Error Kind, Read, Write}; We need to add a dependency on our runtime module as well as a few types from mio. We only need to make one more change in this file, and that's in our Future::poll implementation, so let's go ahead and locate that: We made one important change here that I've highlighted for you. The implementation is exactly the same, with one important difference: ch08/a-runtime/src/http. rs impl Future for Http Get Future { type Output = String; fn poll(&mut self)-> Poll State<Self::Output> { if self. stream. is_none() { println!("FIRST POLL-START OPERATION"); self. write_request(); runtime::registry() . register(self. stream. as_mut(). unwrap(), Token(0), Interest::READABLE)