#![deny(warnings, rust_2018_idioms)]
use loom::sync::atomic::AtomicUsize;
use loom::thread;
use std::sync::atomic::Ordering::Relaxed;
use std::sync::Arc;
#[test]
fn yield_completes() {
loom::model(|| {
let inc = Arc::new(AtomicUsize::new(0));
{
let inc = inc.clone();
thread::spawn(move || {
inc.store(1, Relaxed);
});
}
loop {
if 1 == inc.load(Relaxed) {
return;
}
loom::thread::yield_now();
}
});
}