2 use tokio::sync::{broadcast, mpsc};
4 #[derive(Debug, Clone)]
6 signal: broadcast::Sender<()>,
9 confirm: mpsc::Sender<()>,
13 pub fn new() -> (Self, mpsc::Receiver<()>) {
14 let (confirm, confirm_recv) = mpsc::channel(1);
15 let (signal, _) = broadcast::channel(1);
17 (Self { confirm, signal }, confirm_recv)
21 info!("Shutting down");
22 self.signal.send(()).unwrap();
25 pub fn subscribe(&self) -> broadcast::Receiver<()> {
26 self.signal.subscribe()