Sha256: 5eb8280be8d8fb7bd5fb103ce20db10f618f47e180a402105e0d5e9f8c9fe35a
Contents?: true
Size: 1000 Bytes
Versions: 27
Compression:
Stored size: 1000 Bytes
Contents
#![feature(test)] extern crate test; use crate::test::Bencher; use futures::channel::oneshot; use futures::executor::block_on; use futures::future; use futures::stream::{FuturesUnordered, StreamExt}; use futures::task::Poll; use std::collections::VecDeque; use std::thread; #[bench] fn oneshots(b: &mut Bencher) { const NUM: usize = 10_000; b.iter(|| { let mut txs = VecDeque::with_capacity(NUM); let mut rxs = FuturesUnordered::new(); for _ in 0..NUM { let (tx, rx) = oneshot::channel(); txs.push_back(tx); rxs.push(rx); } thread::spawn(move || { while let Some(tx) = txs.pop_front() { let _ = tx.send("hello"); } }); block_on(future::poll_fn(move |cx| { loop { if let Poll::Ready(None) = rxs.poll_next_unpin(cx) { break; } } Poll::Ready(()) })) }); }
Version data entries
27 entries across 27 versions & 1 rubygems