3 releases (1 stable)
1.0.0 | Jul 19, 2020 |
---|---|
0.1.1 | Jul 19, 2020 |
0.1.0 | Jul 19, 2020 |
#744 in Concurrency
11KB
181 lines
"Write-rarely-read-many" wrapper.
This lock-free container is suitable in situations where you perform a lot of reads to a T
,
but only rarely modify that T
.
From a logic point of view, it is more or less the equivalent of an RwLock
, except that:
- It works in
no_std
platforms. - Reading the
T
always takes the same time and will never wait for a lock to be released. - Writing the
T
is done in a compare-and-swap way, and updates might have to be performed multiple times.
See the documentation of the Wrrm
.
Example
let val = wrrm::Wrrm::from(5);
assert_eq!(*val.access(), 5);
val.modify_with(|v| *v += 1);
assert_eq!(*val.access(), 6);
Dependencies
~23KB