#rcu #atomic #lock-free #data-structures #data-access

nightly no-std rcu_128

支持原子 128 位操作的平台的 RCU (读取-复制-更新) 实现

11 个版本

0.2.2 2024 年 6 月 25 日
0.2.1 2024 年 6 月 21 日
0.1.9 2024 年 6 月 21 日

#309并发

Download history 452/week @ 2024-06-14 391/week @ 2024-06-21 15/week @ 2024-06-28 38/week @ 2024-07-05 55/week @ 2024-07-26 4/week @ 2024-08-02

每月 59 次下载

MIT 许可证

12KB
135

Rcu128

Rcu128 是一个 Rust 库,提供对值的并发数据结构进行读取-复制-更新 (RCU) 风格访问。它允许多个读取器并发访问值,同时通过在所有当前读取器完成读取旧值之前阻止值的发布来确保安全的更新。

限制

仅在支持 u128 原子加载和存储的平台上有可用。

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
rcu_128 = { git = "https://github.com/cyborg42/rcu_128.git" }

示例

use rcu_128::RcuCell;

fn main() {
    let rcu_cell = RcuCell::new(42);

    // Read the value
    {
        let guard = rcu_cell.read();
        assert_eq!(*guard, 42);
    }

    // Write a new value
    rcu_cell.write(100);

    // Upate with a function
    rcu_cell.update(|value| value + 1);

    // Read the updated value
    {
        let guard = rcu_cell.read();
        assert_eq!(*guard, 101);
    }
}

许可证

本项目采用 MIT 许可证。有关详细信息,请参阅 许可证文件

依赖项

~0.4–5.5MB
~11K SLoC