fn fill_read_buffer()

in netbench/src/multiplex.rs [193:219]


    fn fill_read_buffer(&mut self, cx: &mut Context) -> Poll<Result<()>> {
        // don't fill the buffer if we have a pending frame
        if self.frame.is_some() {
            return Poll::Pending;
        }

        // the socket is closed
        if !self.rx_open {
            return Ok(()).into();
        }

        let rx_open = &mut self.rx_open;
        let inner = self.inner.as_mut();

        ready!(self.read_buf.read(|buf| {
            ready!(inner.poll_read(cx, buf))?;

            // the socket returned a 0 write
            if buf.filled().is_empty() {
                *rx_open = false;
            }

            Ok(()).into()
        }))?;

        Ok(()).into()
    }