#cell #lock #mutex #locking #interior-mutability #data-structures #no-standard-library

无需 std lock_cell

使用 Rust 编写的自定义锁定单元格类型

7 个版本 (破坏性更新)

0.6.0 2023 年 7 月 8 日
0.5.1 2023 年 7 月 5 日
0.4.0 2023 年 7 月 2 日
0.3.0 2023 年 7 月 2 日
0.1.0 2023 年 6 月 24 日

并发 中排名 1138

每月下载 41

0BSD 许可证

29KB
403

lock_cell

此 crate 提供 LockCell<T> 和其他支持类型。

LockCell 是一种单元格类型,它通过内部可变性提供动态修改。它与 RefCell<T> 类似,但只允许单个借用类型(一个锁)。锁定 LockCell 允许自由修改其内容。

LockCell 只能在单线程上下文中使用 - 它不能在不同线程之间共享。通常,LockCell 将存储在 Rc<T> 中,以便可以共享。

您是否使用 LockCellRefCell 取决于您程序的结构和行为。通常,如果您有很多写入器和读取器,使用 LockCell 可能更好,因为它确保写入器不太可能被饿死。

LockCellSync 等价物是 Mutex<T>

功能

  • enable_std 功能启用标准库。这为 TryLockError 类型提供了 std::error::Error 的实现。此功能默认启用。

  • debug_lockcell 功能跟踪 lock()LockCell 中的调用位置,允许开发者将文件中第一次加锁的位置与引发恐慌的加锁位置进行比较,有助于调试。

无运行时依赖

功能