Функция channel
pub fn channel<T>(init: T) -> (Sender<T>, Receiver<T>)
Доступно только при включённой возможности crate
sync.Создаёт новый канал watch и возвращает дескрипторы для отправки и получения.
Все значения, отправленные через Sender, становятся доступны дескрипторам Receiver. Половине Receiver доступно только последнее отправленное значение. Все промежуточные значения удаляются.
Примеры
Следующий пример выводит hello! world! .
use tokio::sync::watch;
use tokio::time::{Duration, sleep};
let (tx, mut rx) = watch::channel("hello");
tokio::spawn(async move {
// Use the equivalent of a "do-while" loop so the initial value is
// processed before awaiting the `changed()` future.
loop {
println!("{}! ", *rx.borrow_and_update());
if rx.changed().await.is_err() {
break;
}
}
});
sleep(Duration::from_millis(100)).await;
tx.send("world")?;
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/sync/watch/fn.channel.html