Expand description
A simple mutex.
More efficient than std::sync::Mutex
and simpler than
parking_lot::Mutex
.
The locking mechanism uses eventual fairness to ensure locking will be fair on average without sacrificing performance. This is done by forcing a fair lock whenever a lock operation is starved for longer than 0.5 milliseconds.
§Examples
use simple_mutex::Mutex;
use std::sync::Arc;
use std::thread;
let m = Arc::new(Mutex::new(0));
let mut threads = vec![];
for _ in 0..10 {
let m = m.clone();
threads.push(thread::spawn(move || {
*m.lock() += 1;
}));
}
for t in threads {
t.join().unwrap();
}
assert_eq!(*m.lock(), 10);
Structs§
- Mutex
- A simple mutex.
- Mutex
Guard - A guard that releases the mutex when dropped.