12个版本
使用旧的Rust 2015
0.1.11 | 2023年3月9日 |
---|---|
0.1.10 | 2021年4月7日 |
0.1.8 | 2019年6月23日 |
0.1.7 | 2019年4月2日 |
0.1.2 | 2018年9月28日 |
259 在 并发
每月71次下载
在 7 个crates中使用(通过 ate)
18KB
428 行
RcuCell
RcuCell是一个可以在多线程环境中安全使用的无锁rcu cell实现。
功能
- 写操作不会阻塞读操作。
- 写操作会“阻塞”写操作。
- RcuCell可以不包含数据。
用法
fn single_thread() {
let t = RcuCell::new(Some(10));
let x = t.read();
let y = t.read();
t.try_lock().unwrap().update(None);
let z = t.read();
let a = z.clone();
drop(t); // t can be dropped before reader
assert_eq!(x.map(|v| *v), Some(10));
assert_eq!(y.map(|v| *v), Some(10));
assert_eq!(z.map(|v| *v), None);
assert_eq!(a.map(|v| *v), None);
}