1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
// Copyright 2022 System76 <info@system76.com>
// SPDX-License-Identifier: MIT or Apache-2.0
use super::broadcast;
/// Sends shutdown signals to receivers.
#[derive(Debug)]
pub struct ShutdownSender {
pub(super) sender: broadcast::Sender<()>,
}
impl ShutdownSender {
/// Broadcasts a shutdown signal to listening receivers.
pub(crate) fn shutdown(self) {
drop(self);
}
}
impl Drop for ShutdownSender {
fn drop(&mut self) {
let _ = self.sender.send(());
}
}