extern crate concurrency_toolkit;
use concurrency_toolkit::sync::{Arc, RwLock};
use concurrency_toolkit::{obtain_read_lock, obtain_write_lock, spawn, join, yield_now};
#[concurrency_toolkit::test]
fn test_thread() {
let rwlock = Arc::new(RwLock::new(()));
let rwlock_cloned = Arc::clone(&rwlock);
let handle1 = spawn!({
yield_now!();
let _guard = obtain_read_lock!(&rwlock_cloned).unwrap();
});
let handle2 = spawn!({
yield_now!();
let _guard = obtain_write_lock!(&rwlock).unwrap();
});
join!(handle1).unwrap();
join!(handle2).unwrap();
}