diff options
author | Carl Lerche <me@carllerche.com> | 2020-10-08 12:12:56 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-08 12:12:56 -0700 |
commit | 066965cd59d01fd9d999152e32169a24dfe434fa (patch) | |
tree | eef03ca071b8d9f285954a1f98fd85e3e188c98b /examples/tinyhttp.rs | |
parent | 6259893094ebcdfecb107fcf3682eaad1bd1903b (diff) |
net: use &self with TcpListener::accept (#2919)
Uses the infrastructure added by #2828 to enable switching
`TcpListener::accept` to use `&self`.
This also switches `poll_accept` to use `&self`. While doing introduces
a hazard, `poll_*` style functions are considered low-level. Most users
will use the `async fn` variants which are more misuse-resistant.
TcpListener::incoming() is temporarily removed as it has the same
problem as `TcpSocket::by_ref()` and will be implemented later.
Diffstat (limited to 'examples/tinyhttp.rs')
-rw-r--r-- | examples/tinyhttp.rs | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/examples/tinyhttp.rs b/examples/tinyhttp.rs index 4870aea2..c561bbd3 100644 --- a/examples/tinyhttp.rs +++ b/examples/tinyhttp.rs @@ -30,19 +30,17 @@ async fn main() -> Result<(), Box<dyn Error>> { let addr = env::args() .nth(1) .unwrap_or_else(|| "127.0.0.1:8080".to_string()); - let mut server = TcpListener::bind(&addr).await?; - let mut incoming = server.incoming(); + let server = TcpListener::bind(&addr).await?; println!("Listening on: {}", addr); - while let Some(Ok(stream)) = incoming.next().await { + loop { + let (stream, _) = server.accept().await?; tokio::spawn(async move { if let Err(e) = process(stream).await { println!("failed to process connection; error = {}", e); } }); } - - Ok(()) } async fn process(stream: TcpStream) -> Result<(), Box<dyn Error>> { |