conquer-util 0.3.0

utilities for concurrent and lock-free programming
Documentation
#![feature(test)]

extern crate test;

use test::Bencher;

use conquer_util::BackOff;

#[bench]
fn spin_once(b: &mut Bencher) {
    b.iter(|| {
        let backoff = BackOff::new();
        backoff.spin();
    })
}

#[bench]
fn spin_full(b: &mut Bencher) {
    b.iter(|| {
        let backoff = BackOff::new();
        while !backoff.advise_yield() {
            backoff.spin();
        }
    })
}

#[bench]
fn spin_full_random(b: &mut Bencher) {
    b.iter(|| {
        let backoff = BackOff::random();
        while !backoff.advise_yield() {
            backoff.spin();
        }
    })
}

#[bench]
fn spin_for(b: &mut Bencher) {
    b.iter(|| {
        use std::time::Duration;
        BackOff::spin_for(Duration::from_nanos(100));
    })
}