diff options
Diffstat (limited to 'src/rwlock.rs')
-rw-r--r-- | src/rwlock.rs | 24 |
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()); + } + } } |