summaryrefslogtreecommitdiffstats
path: root/tokio/src/net/tcp/listener.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tokio/src/net/tcp/listener.rs')
-rw-r--r--tokio/src/net/tcp/listener.rs32
1 files changed, 7 insertions, 25 deletions
diff --git a/tokio/src/net/tcp/listener.rs b/tokio/src/net/tcp/listener.rs
index ef0a87c0..b8f61a63 100644
--- a/tokio/src/net/tcp/listener.rs
+++ b/tokio/src/net/tcp/listener.rs
@@ -150,7 +150,7 @@ impl TcpListener {
}
fn bind_addr(addr: SocketAddr) -> io::Result<TcpListener> {
- let listener = mio::net::TcpListener::bind(&addr)?;
+ let listener = mio::net::TcpListener::bind(addr)?;
TcpListener::new(listener)
}
@@ -193,23 +193,14 @@ impl TcpListener {
&mut self,
cx: &mut Context<'_>,
) -> Poll<io::Result<(TcpStream, SocketAddr)>> {
- let (io, addr) = ready!(self.poll_accept_std(cx))?;
-
- let io = mio::net::TcpStream::from_stream(io)?;
- let io = TcpStream::new(io)?;
-
- Poll::Ready(Ok((io, addr)))
- }
-
- fn poll_accept_std(
- &mut self,
- cx: &mut Context<'_>,
- ) -> Poll<io::Result<(net::TcpStream, SocketAddr)>> {
loop {
let ev = ready!(self.io.poll_read_ready(cx))?;
- match self.io.get_ref().accept_std() {
- Ok(pair) => return Poll::Ready(Ok(pair)),
+ match self.io.get_ref().accept() {
+ Ok((io, addr)) => {
+ let io = TcpStream::new(io)?;
+ return Poll::Ready(Ok((io, addr)));
+ }
Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => {
self.io.clear_readiness(ev);
}
@@ -265,7 +256,7 @@ impl TcpListener {
/// from a future driven by a tokio runtime, otherwise runtime can be set
/// explicitly with [`Runtime::enter`](crate::runtime::Runtime::enter) function.
pub fn from_std(listener: net::TcpListener) -> io::Result<TcpListener> {
- let io = mio::net::TcpListener::from_std(listener)?;
+ let io = mio::net::TcpListener::from_std(listener);
let io = PollEvented::new(io)?;
Ok(TcpListener { io })
}
@@ -408,15 +399,6 @@ impl crate::stream::Stream for TcpListener {
}
}
-impl TryFrom<TcpListener> for mio::net::TcpListener {
- type Error = io::Error;
-
- /// Consumes value, returning the mio I/O object.
- fn try_from(value: TcpListener) -> Result<Self, Self::Error> {
- value.io.into_inner()
- }
-}
-
impl TryFrom<net::TcpListener> for TcpListener {
type Error = io::Error;