relm4/channel/shutdown/
sender.rs

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