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}