echoserver 0.1.0

Echo Server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use tokio::signal::unix::{signal, SignalKind};
use tracing::info;

pub async fn shutdown() {
    tokio::select! {
        () = recv_signal_and_shutdown(SignalKind::interrupt()) => {}
        () = recv_signal_and_shutdown(SignalKind::terminate()) => {}
    };

    info!("recv signal and shutting down");
}

async fn recv_signal_and_shutdown(kind: SignalKind) {
    signal(kind).expect("register signal handler").recv().await;
}