Struct tokio::sync::watch::Sender [−][src]
pub struct Sender<T> { /* fields omitted */ }
This is supported on crate feature
sync
only.Expand description
Implementations
Sends a new value via the channel, notifying all receivers.
Returns a reference to the most recently sent value
Outstanding borrows hold a read lock. This means that long lived borrows could cause the send half to block. It is recommended to keep the borrow as short lived as possible.
Examples
use tokio::sync::watch; let (tx, _) = watch::channel("hello"); assert_eq!(*tx.borrow(), "hello");
Checks if the channel has been closed. This happens when all receivers have dropped.
Examples
let (tx, rx) = tokio::sync::watch::channel(()); assert!(!tx.is_closed()); drop(rx); assert!(tx.is_closed());
Completes when all receivers have dropped.
This allows the producer to get notified when interest in the produced values is canceled and immediately stop doing work.
Examples
use tokio::sync::watch; #[tokio::main] async fn main() { let (tx, rx) = watch::channel("hello"); tokio::spawn(async move { // use `rx` drop(rx); }); // Waits for `rx` to drop tx.closed().await; println!("the `rx` handles dropped") }
Returns the number of receivers that currently exist
Examples
use tokio::sync::watch; #[tokio::main] async fn main() { let (tx, rx1) = watch::channel("hello"); assert_eq!(1, tx.receiver_count()); let mut _rx2 = rx1.clone(); assert_eq!(2, tx.receiver_count()); }
Trait Implementations
Auto Trait Implementations
impl<T> !RefUnwindSafe for Sender<T>
impl<T> !UnwindSafe for Sender<T>