5 个版本
使用旧的 Rust 2015
0.1.4 | 2018年2月5日 |
---|---|
0.1.3 | 2018年1月6日 |
0.1.2 | 2017年9月27日 |
0.1.1 | 2017年5月5日 |
0.1.0 | 2017年5月5日 |
#1016 in 并发
590 次每月下载
用于 27 个 Crates(10 直接使用)
10KB
164 行
atomic_immut
Rust 的原子不可变值。
lib.rs
:
原子不可变值。
示例
use std::sync::Arc;
use std::thread;
use atomic_immut::AtomicImmut;
let v = Arc::new(AtomicImmut::new(vec![0]));
{
let v = v.clone();
thread::spawn(move || {
let mut new = (&*v.load()).clone(); // Loads the immutable reference
new.push(1);
v.store(new); // Replaces the existing value
});
}
while v.load().len() == 1 {}
assert_eq!(&*v.load(), &vec![0, 1]);