use test_utils::SHORT_WAIT;
use crate::multilock::{Fairness, MultiLock};
use crate::test_utils;
#[test]
fn timeout_in_write_unblocks_readers() {
let lock = MultiLock::new(0, Fairness::WriteBiased);
let guard_1 = lock.read();
let guard_2 = lock.read();
let guard_3 = lock.try_write(SHORT_WAIT);
assert!(guard_3.is_none());
let guard_4 = lock.read();
drop(guard_1);
drop(guard_2);
drop(guard_4);
}
#[test]
fn timeout_in_upgrade_unblocks_readers() {
let lock = MultiLock::new(0, Fairness::WriteBiased);
let guard_1 = lock.read();
let guard_2 = lock.read();
let guard_3 = lock.read().try_upgrade(SHORT_WAIT);
assert!(guard_3.is_unchanged());
let guard_4 = lock.read();
drop(guard_1);
drop(guard_2);
drop(guard_4);
}