From 29144e6c9bb4165df31a319f0b30d72ae690366a Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 27 Mar 2017 08:55:30 -0700 Subject: [PATCH] Return `NotReady` from `TcpStream::read_buf` --- src/net/tcp.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/net/tcp.rs b/src/net/tcp.rs index a0d441244..06f8efd6c 100644 --- a/src/net/tcp.rs +++ b/src/net/tcp.rs @@ -511,7 +511,7 @@ impl<'a> AsyncRead for &'a TcpStream { fn read_buf(&mut self, buf: &mut B) -> Poll { if let Async::NotReady = ::poll_read(self) { - return Err(::would_block()) + return Ok(Async::NotReady) } let r = unsafe { let mut bufs: [_; 16] = Default::default(); @@ -524,12 +524,11 @@ impl<'a> AsyncRead for &'a TcpStream { unsafe { buf.advance_mut(n); } Ok(Async::Ready(n)) } - Err(e) => { - if e.kind() == io::ErrorKind::WouldBlock { - self.io.need_read(); - } - Err(e) + Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { + self.io.need_read(); + Ok(Async::NotReady) } + Err(e) => Err(e), } } }