File: bench.rs

package info (click to toggle)
rust-event-listener 5.4.1-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 344 kB
  • sloc: makefile: 2; sh: 1
file content (26 lines) | stat: -rw-r--r-- 621 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::iter;

use criterion::{criterion_group, criterion_main, Criterion};
use event_listener::{Event, Listener};

const COUNT: usize = 8000;

fn bench_events(c: &mut Criterion) {
    c.bench_function("notify_and_wait", |b| {
        let ev = Event::new();
        let mut handles = Vec::with_capacity(COUNT);

        b.iter(|| {
            handles.extend(iter::repeat_with(|| ev.listen()).take(COUNT));

            ev.notify(COUNT);

            for handle in handles.drain(..) {
                handle.wait();
            }
        });
    });
}

criterion_group!(benches, bench_events);
criterion_main!(benches);