#lock-free #reader-writer #cell #read #access #eventually

left-right-cell

一个具有无锁并发读访问的单元格

4个版本

0.1.3 2024年1月20日
0.1.2 2022年7月26日
0.1.1 2022年7月26日
0.1.0 2022年7月26日

265并发

Download history 433/week @ 2024-04-23 244/week @ 2024-04-30 299/week @ 2024-05-07 153/week @ 2024-05-14 195/week @ 2024-05-21 259/week @ 2024-05-28 281/week @ 2024-06-04 218/week @ 2024-06-11 229/week @ 2024-06-18 305/week @ 2024-06-25 238/week @ 2024-07-02 148/week @ 2024-07-09 91/week @ 2024-07-16 63/week @ 2024-07-23 207/week @ 2024-07-30 210/week @ 2024-08-06

581 每月下载

MIT 许可证

6KB
81

left-right-cell

left-right-cell 是使用 left-right crate 创建的无锁、最终一致的单元格。它允许读者从单元格中读取而不会阻塞,而写入者可能在写入时阻塞。这是通过存储数据两个副本实现的,一个用于读者,一个用于写入者。

let (mut w, r) = left_right_cell::new(false);

let t = std::thread::spawn(move || {
    loop {
        let value = r.get().unwrap();
        if *value {
            break;
        }
    }
});

w.set(true);
w.publish();
t.join().unwrap();
assert!(true);

lib.rs:

left-right-cell 是使用 left-right crate 创建的无锁、最终一致的单元格。它允许读者从单元格中读取而不会阻塞,而写入者可能在写入时阻塞。这是通过存储两个数据副本实现的,一个用于读者,一个用于写入者。

依赖项

~0.1–26MB
~330K SLoC