diff options
Diffstat (limited to 'tokio/src/net/tcp/stream.rs')
-rw-r--r-- | tokio/src/net/tcp/stream.rs | 84 |
1 files changed, 66 insertions, 18 deletions
diff --git a/tokio/src/net/tcp/stream.rs b/tokio/src/net/tcp/stream.rs index 343c6c5d..d35f1620 100644 --- a/tokio/src/net/tcp/stream.rs +++ b/tokio/src/net/tcp/stream.rs @@ -674,22 +674,70 @@ impl TcpStream { // IoSlice isn't Copy, so we must expand this manually ;_; let mut slices: [IoSlice<'_>; MAX_BUFS] = [ - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), - IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), + IoSlice::new(S), ]; let cnt = buf.bytes_vectored(&mut slices); @@ -703,11 +751,11 @@ impl TcpStream { Ok(n) => { buf.advance(n); Poll::Ready(Ok(n)) - }, + } Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { self.io.clear_write_ready(cx)?; Poll::Pending - }, + } Err(e) => Poll::Ready(Err(e)), } } |