Step 3-Implementing a proper Reactor 205 buffer: Vec<u8>, path: String, id: usize, } We also need to retrieve a new ID from the reactor when the future is created: ch08/b-reactor-executor/src/http. rs impl Http Get Future { fn new(path: String)-> Self { let id = reactor(). next_id(); Self { stream: None, buffer: vec![], path, id, } } Next, we have to locate the poll implementation for Http Get Future. The first thing we need to do is make sure that we register interest with our Poll instance and register the Waker we receive with the Reactor the first time the future gets polled. Since we don't register directly with Registry anymore, we remove that line of code and add these new lines instead: ch08/b-reactor-executor/src/http. rs if self. stream. is_none() { println!("FIRST POLL-START OPERATION"); self. write_request(); let stream = self. stream. as_mut(). unwrap(); runtime::reactor(). register(stream, Interest::READABLE, self. id); runtime::reactor(). set_waker(waker, self. id); } Lastly, we need to make some minor changes to how we handle the different conditions when reading from Tcp Stream : ch08/b-reactor-executor/src/http. rs match self. stream. as_mut(). unwrap(). read(&mut buff) { Ok(0) => {