|0.1.5||Mar 28, 2023|
|0.1.4||Mar 16, 2023|
|0.1.1||Feb 23, 2023|
|0.0.1||Feb 18, 2023|
#208 in Concurrency
10,337 downloads per month
Used in eyeball
(Shared) Read-Only Lock: A thing that can be useful when you don't really want shared mutability, you just want to mutate a value from one place and read it from many others.
This library provides three types:
Shared<T>: similar to
Arc<RwLock<T>>, but you can only create
WeakReadLock<T>s from it that share access to the same inner value, not further
Shared<T>s. Also, acquiring a write lock requires unique ownership / borrowing (
&mut self). However: Reading requires no locking because mutably borrowing the
Sharedmeans that no other thread can be mutating the value at the same time (all other reference to the value are read-only).
SharedReadLock<T>: like a
Arc<RwLock<T>>that is only ever used for reading. Can be downgraded to
WeakReadLock<T>: like a
Weak<RwLock<T>>. That is, it references the same memory, but if the original
Sharedand any derived
SharedReadLocks to that value are dropped, it will be deallocated regardless of any
WeakReadLocks. Must be upgraded into
SharedReadLockto access the inner value.