aboutsummaryrefslogtreecommitdiff
path: root/src/rwlock.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/rwlock.rs')
-rw-r--r--src/rwlock.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/rwlock.rs b/src/rwlock.rs
index 70e1b1a..512114c 100644
--- a/src/rwlock.rs
+++ b/src/rwlock.rs
@@ -408,6 +408,8 @@ mod tests {
write_result.is_none(),
"try_write should fail while read_guard is in scope"
);
+ assert!(lock.is_locked());
+ assert!(!lock.is_locked_exclusive());
drop(read_guard);
}
@@ -419,6 +421,8 @@ mod tests {
write_result.is_none(),
"try_write should fail while upgrade_guard is in scope"
);
+ assert!(lock.is_locked());
+ assert!(!lock.is_locked_exclusive());
drop(upgrade_guard);
}
@@ -430,6 +434,8 @@ mod tests {
write_result.is_none(),
"try_write should fail while write_guard is in scope"
);
+ assert!(lock.is_locked());
+ assert!(lock.is_locked_exclusive());
drop(write_guard);
}
@@ -615,4 +621,22 @@ mod tests {
.join()
.unwrap();
}
+
+ #[test]
+ fn test_rw_write_is_locked() {
+ let lock = RwLock::new(0isize);
+ {
+ let _read_guard = lock.read();
+
+ assert!(lock.is_locked());
+ assert!(!lock.is_locked_exclusive());
+ }
+
+ {
+ let _write_guard = lock.write();
+
+ assert!(lock.is_locked());
+ assert!(lock.is_locked_exclusive());
+ }
+ }
}