summaryrefslogtreecommitdiffstats
path: root/examples/tinyhttp.rs
diff options
context:
space:
mode:
authorCarl Lerche <me@carllerche.com>2020-10-08 12:12:56 -0700
committerGitHub <noreply@github.com>2020-10-08 12:12:56 -0700
commit066965cd59d01fd9d999152e32169a24dfe434fa (patch)
treeeef03ca071b8d9f285954a1f98fd85e3e188c98b /examples/tinyhttp.rs
parent6259893094ebcdfecb107fcf3682eaad1bd1903b (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.rs8
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>> {