#![feature(test)] extern crate crossbeam_epoch as epoch; extern crate crossbeam_utils as utils; extern crate test; use test::Bencher; use utils::thread::scope; #[bench] fn single_pin(b: &mut Bencher) { b.iter(|| epoch::pin()); } #[bench] fn multi_pin(b: &mut Bencher) { const THREADS: usize = 16; const STEPS: usize = 100_000; b.iter(|| { scope(|s| { for _ in 0..THREADS { s.spawn(|_| { for _ in 0..STEPS { epoch::pin(); } }); } }) .unwrap(); }); }