pub fn write<P>(path: P, events: &Events) -> Result<()>
Expand description
Write events to the given path.
Examples found in repository?
examples/race.rs (line 43)
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
fn main() -> Result<(), Box<dyn std::error::Error>> {
let lock = Arc::new(RwLock::new(0u64));
let mut threads = Vec::new();
unlock::capture();
for _ in 0..100 {
let lock = lock.clone();
threads.push(thread::spawn(move || {
let mut sum = 0u64;
for n in 0..100 {
if n % 4 == 0 {
*lock.write() += 1;
} else {
sum += *lock.read();
}
std::thread::sleep(std::time::Duration::from_millis(n % 11));
}
sum
}));
}
let mut total = 0;
for thread in threads {
total += thread.join().unwrap();
}
dbg!(total);
let events = unlock::drain();
dbg!(events.len());
unlock::html::write("trace.html", &events)?;
Ok(())
}