From b999669efe112066ee8e94727f91c7993de796a7 Mon Sep 17 00:00:00 2001 From: Thilo Behnke Date: Thu, 12 May 2022 22:18:24 +0200 Subject: [PATCH] graceful shutdown --- server/src/http.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/server/src/http.rs b/server/src/http.rs index b25202c..b473dec 100644 --- a/server/src/http.rs +++ b/server/src/http.rs @@ -20,12 +20,19 @@ impl HttpServer { let host = (self.addr, self.port).into(); let server = Server::bind(&host).serve(make_svc); println!("Listening on http://{}", host); - server.await?; + let graceful = server.with_graceful_shutdown(shutdown_signal()); + graceful.await?; Ok(()) } - } async fn handle_request(req: Request) -> Result, Infallible> { Ok(Response::new("hello".into())) } + +async fn shutdown_signal() { + // Wait for the CTRL+C signal + tokio::signal::ctrl_c() + .await + .expect("failed to install CTRL+C signal handler"); +}