Skip to content

Commit f3210cc

Browse files
committed
Stop simulation
1 parent d4b0061 commit f3210cc

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

antares/src/controller.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,6 @@ impl Controller {
3333
tokio::spawn(async move {
3434
radar.start(wave_receiver).await;
3535
});
36-
37-
tokio::signal::ctrl_c()
38-
.await
39-
.expect("failed to listen for Ctrl+C");
4036
}
4137

4238
pub fn reset_simulation(&self) {

antares/src/main.rs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use antares::{Config, Controller, ShipConfig};
22
use axum::{extract::State, routing::post, Json, Router};
33
use clap::Parser;
44
use std::{fs, net::SocketAddr, process, sync::Arc};
5-
use tokio::task;
65

76
#[derive(Parser)]
87
#[command(author, version, about)]
@@ -33,10 +32,7 @@ async fn main() {
3332
let controller_bind_addr = config.simulation.controller_bind_addr.clone();
3433
let controller = Arc::new(Controller::new(config));
3534

36-
let controller_clone = Arc::clone(&controller);
37-
task::spawn(async move {
38-
controller_clone.run().await;
39-
});
35+
controller.run().await;
4036

4137
let app = Router::new()
4238
.route("/simulation/reset", post(reset_simulation))
@@ -46,9 +42,17 @@ async fn main() {
4642
let addr: SocketAddr = controller_bind_addr.parse().unwrap();
4743
let listener = tokio::net::TcpListener::bind(&addr).await.unwrap();
4844
println!("🚢 Controller server running on {addr}");
49-
axum::serve(listener, app.into_make_service())
50-
.await
51-
.unwrap();
45+
46+
tokio::select! {
47+
result = axum::serve(listener, app.into_make_service()) => {
48+
if let Err(err) = result {
49+
eprintln!("Server error: {err}");
50+
}
51+
}
52+
_ = tokio::signal::ctrl_c() => {
53+
println!("🛑 Received Ctrl+C, shutting down...");
54+
}
55+
}
5256
}
5357

5458
async fn reset_simulation(State(controller): State<Arc<Controller>>) {

0 commit comments

Comments
 (0)