12 个版本
0.1.11 | 2024 年 6 月 26 日 |
---|---|
0.1.10 | 2024 年 6 月 10 日 |
0.1.6 | 2024 年 5 月 27 日 |
0.1.4 | 2023 年 11 月 23 日 |
在 内存管理 类别中排名 371
每月下载量 141
用于 batch-channel
17KB
284 代码行
线程安全的分割引用计数
splitrc 提供一对引用计数,共同管理对象的生命周期。当任一半的计数达到零时,对象都会收到通知。
它主要用于实现通道类型的所有权,其中通道需要在另一半完全释放时收到通知。
实现将两个 32 位计数器存储在一个共享的 64 位原子中。在 64 位平台上,使用原子增加和减少。在 32 位平台上,增加和减少是一个 CAS 循环。
40 亿个引用应该足够了。超过这个数会导致 panic。
指针被任意命名为 [Tx] 和 [Rx],以指示它们在通道中的预期用途。
# struct MyValue {}
# impl splitrc::Notify for MyValue {}
let (tx, rx) = splitrc::new(MyValue {});
依赖项
~0–24MB
~334K SLoC