Vendor things

This commit is contained in:
John Doty 2024-03-08 11:03:01 -08:00
parent 5deceec006
commit 977e3c17e5
19434 changed files with 10682014 additions and 0 deletions

View file

@ -0,0 +1,32 @@
use loom::{
sync::{
atomic::{AtomicUsize, Ordering},
Arc, RwLock,
},
thread,
};
#[test]
fn rwlock_two_writers() {
loom::model(|| {
let lock = Arc::new(RwLock::new(1));
let c_lock = lock.clone();
let c_lock2 = lock;
let atomic = Arc::new(AtomicUsize::new(0));
let c_atomic = atomic.clone();
let c_atomic2 = atomic;
thread::spawn(move || {
let mut w = c_lock.write().unwrap();
*w += 1;
c_atomic.fetch_add(1, Ordering::Relaxed);
});
thread::spawn(move || {
let mut w = c_lock2.write().unwrap();
*w += 1;
c_atomic2.fetch_add(1, Ordering::Relaxed);
});
});
}