Функция channel
pub fn channel<T>() -> (Sender<T>, Receiver<T>)
Доступно только при включённой функции crate
sync.Создаёт новый одноразовый канал для отправки отдельных значений между асинхронными задачами.
Функция возвращает отдельные дескрипторы для отправки и получения. Дескриптор Sender используется производителем для отправки значения. Дескриптор Receiver используется потребителем для получения значения.
Каждый дескриптор можно использовать в отдельной задаче.
Примеры
use tokio::sync::oneshot;
let (tx, rx) = oneshot::channel();
tokio::spawn(async move {
if let Err(_) = tx.send(3) {
println!("the receiver dropped");
}
});
match rx.await {
Ok(v) => println!("got = {:?}", v),
Err(_) => println!("the sender dropped"),
}
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/sync/oneshot/fn.channel.html