18 个版本

0.6.0 2023 年 7 月 29 日
0.5.1 2021 年 11 月 10 日
0.5.0 2020 年 8 月 6 日
0.4.6 2020 年 7 月 5 日
0.3.0 2016 年 3 月 30 日

#168 in 并发

Download history 217206/week @ 2024-04-08 221567/week @ 2024-04-15 237382/week @ 2024-04-22 248648/week @ 2024-04-29 236570/week @ 2024-05-06 255436/week @ 2024-05-13 279378/week @ 2024-05-20 232201/week @ 2024-05-27 268245/week @ 2024-06-03 270743/week @ 2024-06-10 255394/week @ 2024-06-17 254874/week @ 2024-06-24 218421/week @ 2024-07-01 234721/week @ 2024-07-08 218797/week @ 2024-07-15 221617/week @ 2024-07-22

906,888 每月下载量
用于 1,466 个 Crates(83 个直接使用)

Apache-2.0/MIT

46KB
952

Rust 的泛型 Atomic<T>

Build Status Crates.io

这是一个为所有 T: NoUninit 类型提供泛型 Atomic<T> 类型的 Rust 库,与标准库不同,标准库只提供一些固定的原子类型(AtomicBoolAtomicIsizeAtomicUsizeAtomicPtr)。NoUninit 约束来自 bytemuck 包,表示类型没有内部填充字节。您需要为与 Atomic<T> 一起使用的所有类型推导或实现此特性。

如果可能,此库将使用本地原子指令,否则将回退到基于锁的机制。您可以使用 Atomic::<T>::is_lock_free() 函数来检查对于给定的类型是否支持本地原子操作。请注意,类型必须具有 2 的幂次大小和对齐,才能使用本地原子指令。

此包使用 #![no_std] 并且只依赖于 libcore。

文档

用法

将此添加到您的 Cargo.toml

[dependencies]
atomic = "0.6"

并将此添加到您的 crate 根目录

extern crate atomic;

许可证

许可协议为以下之一

根据您的选择。

贡献

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

依赖项

约135KB