4 个版本
0.2.0 | 2023年10月26日 |
---|---|
0.1.0 | 2023年10月2日 |
#553 in 并发
每月 36 次下载
21KB
432 行
lock-free-static
无锁静态变量。
示例
静态变量
use lock_free_static::lock_free_static;
lock_free_static!{
static VAR: i32 = 123;
}
fn main() {
assert!(VAR.init());
assert_eq!(*VAR.get().unwrap(), 123);
}
可变静态变量
use lock_free_static::lock_free_static;
lock_free_static!{
static mut VAR: i32 = 123;
}
fn main() {
assert!(VAR.init());
let mut guard = VAR.lock().unwrap();
assert_eq!(*guard, 123);
*guard = 321;
drop(guard);
assert_eq!(*VAR.lock().unwrap(), 321);
}
许可证
许可协议为以下之一
- Apache 许可证 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交的任何旨在包含在本作品中的贡献,如 Apache-2.0 许可证中定义的,应如上双许可,不附加任何额外条款或条件。