#channel #async-channel #mpsc #tokio #async

tokio-non-async

Helpers for dealing with tokio channels in non-async code

3 releases

0.1.2 Jul 20, 2020
0.1.1 Jul 18, 2020
0.1.0 Jul 18, 2020

#2123 in Asynchronous

Custom license

6KB
81 lines

Helpers for dealing with tokio channels from non-async code in a blocking manner

let (mut tx, mut rx) = mpsc::channel(10);

for i in 0i32..10 {
    tx.send(i).await.unwrap();
}

drop(tx);

tokio::task::spawn_blocking(move || {
    while let Some(received) = rx.optimistic_blocking_recv() {
        let received = rx.optimistic_blocking_recv();
        some_blocking_op(received);
    }
})
.await
.unwrap();

Dependencies

~4.5MB
~65K SLoC