summaryrefslogtreecommitdiffstats
path: root/tokio/src/net/unix/stream.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tokio/src/net/unix/stream.rs')
-rw-r--r--tokio/src/net/unix/stream.rs115
1 files changed, 2 insertions, 113 deletions
diff --git a/tokio/src/net/unix/stream.rs b/tokio/src/net/unix/stream.rs
index 7a226994..a430fa17 100644
--- a/tokio/src/net/unix/stream.rs
+++ b/tokio/src/net/unix/stream.rs
@@ -3,11 +3,10 @@ use crate::io::{AsyncRead, AsyncWrite, PollEvented};
use crate::net::unix::split::{split, ReadHalf, WriteHalf};
use crate::net::unix::ucred::{self, UCred};
-use bytes::{Buf, BufMut};
-use iovec::IoVec;
use std::convert::TryFrom;
use std::fmt;
use std::io::{self, Read, Write};
+use std::mem::MaybeUninit;
use std::net::Shutdown;
use std::os::unix::io::{AsRawFd, RawFd};
use std::os::unix::net::{self, SocketAddr};
@@ -137,7 +136,7 @@ impl TryFrom<net::UnixStream> for UnixStream {
}
impl AsyncRead for UnixStream {
- unsafe fn prepare_uninitialized_buffer(&self, _: &mut [u8]) -> bool {
+ unsafe fn prepare_uninitialized_buffer(&self, _: &mut [MaybeUninit<u8>]) -> bool {
false
}
@@ -148,14 +147,6 @@ impl AsyncRead for UnixStream {
) -> Poll<io::Result<usize>> {
self.poll_read_priv(cx, buf)
}
-
- fn poll_read_buf<B: BufMut>(
- self: Pin<&mut Self>,
- cx: &mut Context<'_>,
- buf: &mut B,
- ) -> Poll<io::Result<usize>> {
- self.poll_read_buf_priv(cx, buf)
- }
}
impl AsyncWrite for UnixStream {
@@ -174,14 +165,6 @@ impl AsyncWrite for UnixStream {
fn poll_shutdown(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<io::Result<()>> {
Poll::Ready(Ok(()))
}
-
- fn poll_write_buf<B: Buf>(
- self: Pin<&mut Self>,
- cx: &mut Context<'_>,
- buf: &mut B,
- ) -> Poll<io::Result<usize>> {
- self.poll_write_buf_priv(cx, buf)
- }
}
impl UnixStream {
@@ -212,70 +195,6 @@ impl UnixStream {
}
}
- pub(crate) fn poll_read_buf_priv<B: BufMut>(
- &self,
- cx: &mut Context<'_>,
- buf: &mut B,
- ) -> Poll<io::Result<usize>> {
- ready!(self.io.poll_read_ready(cx, mio::Ready::readable()))?;
-
- let r = unsafe {
- // The `IoVec` type can't have a 0-length size, so we create a bunch
- // of dummy versions on the stack with 1 length which we'll quickly
- // overwrite.
- let b1: &mut [u8] = &mut [0];
- let b2: &mut [u8] = &mut [0];
- let b3: &mut [u8] = &mut [0];
- let b4: &mut [u8] = &mut [0];
- let b5: &mut [u8] = &mut [0];
- let b6: &mut [u8] = &mut [0];
- let b7: &mut [u8] = &mut [0];
- let b8: &mut [u8] = &mut [0];
- let b9: &mut [u8] = &mut [0];
- let b10: &mut [u8] = &mut [0];
- let b11: &mut [u8] = &mut [0];
- let b12: &mut [u8] = &mut [0];
- let b13: &mut [u8] = &mut [0];
- let b14: &mut [u8] = &mut [0];
- let b15: &mut [u8] = &mut [0];
- let b16: &mut [u8] = &mut [0];
- let mut bufs: [&mut IoVec; 16] = [
- b1.into(),
- b2.into(),
- b3.into(),
- b4.into(),
- b5.into(),
- b6.into(),
- b7.into(),
- b8.into(),
- b9.into(),
- b10.into(),
- b11.into(),
- b12.into(),
- b13.into(),
- b14.into(),
- b15.into(),
- b16.into(),
- ];
- let n = buf.bytes_vec_mut(&mut bufs);
- self.io.get_ref().read_bufs(&mut bufs[..n])
- };
-
- match r {
- Ok(n) => {
- unsafe {
- buf.advance_mut(n);
- }
- Poll::Ready(Ok(n))
- }
- Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => {
- self.io.clear_read_ready(cx, mio::Ready::readable())?;
- Poll::Pending
- }
- Err(e) => Poll::Ready(Err(e)),
- }
- }
-
pub(crate) fn poll_write_priv(
&self,
cx: &mut Context<'_>,
@@ -291,36 +210,6 @@ impl UnixStream {
x => Poll::Ready(x),
}
}
-
- pub(crate) fn poll_write_buf_priv<B: Buf>(
- &self,
- cx: &mut Context<'_>,
- buf: &mut B,
- ) -> Poll<io::Result<usize>> {
- ready!(self.io.poll_write_ready(cx))?;
-
- let r = {
- // The `IoVec` type can't have a zero-length size, so create a dummy
- // version from a 1-length slice which we'll overwrite with the
- // `bytes_vec` method.
- static DUMMY: &[u8] = &[0];
- let iovec = <&IoVec>::from(DUMMY);
- let mut bufs = [iovec; 64];
- let n = buf.bytes_vec(&mut bufs);
- self.io.get_ref().write_bufs(&bufs[..n])
- };
- match r {
- 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)),
- }
- }
}
impl fmt::Debug for UnixStream {