Spec-Zone.ru › Tokio

Функция 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API