#atomic #swap #operations #storage #swapping #options #atomic-swap-option

atomic_swapping

具有交换操作的任意类型原子存储

1个不稳定版本

0.1.0 2021年4月25日

#1394数据结构


3 个crate中使用 (直接使用2个)

MIT/Apache

48KB
725

atomic_swapping

具有交换操作的任意类型原子存储。

这保证了无锁,当原子操作保证无锁时,然而并不保证等待无锁。某些操作可能短时间内自旋。所有值都将被适当释放。

use atomic_swapping::option::AtomicSwapOption;

fn main() {
  let swap = AtomicSwapOption::new(Some(100usize));
  assert_eq!(swap.clone_inner(), Some(100usize));
  assert_eq!(swap.take(), Some(100usize));
  assert_eq!(swap.take(), None);
  swap.set(Some(200usize));
  assert_eq!(swap.swap(Some(300usize)), Some(200usize));
  assert!(swap.contains_value());
  assert_eq!(swap.clone_inner(), Some(300usize));
}

许可证

以下任一许可证下发布:

由您选择。

贡献

除非您明确表示,否则根据Apache-2.0许可证定义的,您提交的任何有意包含在作品中的贡献,将按照上述方式双许可,不附加任何其他条款或条件。

无运行时依赖