pub struct Events { /* private fields */ }
Expand description
Collection of collected events.
Implementations§
source§impl Events
impl Events
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
The number of enter events in the collection.
Examples found in repository?
examples/race.rs (line 42)
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(())
}
Trait Implementations§
source§impl<'de> Deserialize<'de> for Events
impl<'de> Deserialize<'de> for Events
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl RefUnwindSafe for Events
impl Send for Events
impl Sync for Events
impl Unpin for Events
impl UnwindSafe for Events
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more