[−][src]Crate async_rwlock
An async reader-writer lock.
This type of lock allows multiple readers or one writer at any point in time.
The locking strategy is write-preferring, which means writers are never starved. Releasing a write lock wakes the next blocked reader and the next blocked writer.
Examples
use async_rwlock::RwLock; let lock = RwLock::new(5); // Multiple read locks can be held at a time. let r1 = lock.read().await; let r2 = lock.read().await; assert_eq!(*r1, 5); assert_eq!(*r2, 5); drop((r1, r2)); // Only one write lock can be held at a time. let mut w = lock.write().await; *w += 1; assert_eq!(*w, 6);
Structs
RwLock | An async reader-writer lock. |
RwLockReadGuard | A guard that releases the read lock when dropped. |
RwLockUpgradableReadGuard | A guard that releases the upgradable read lock when dropped. |
RwLockWriteGuard | A guard that releases the write lock when dropped. |