1 个不稳定版本
0.1.0 | 2021年11月12日 |
---|
#906 在 并发
用于 hv-cell
8KB
77 行
重型租赁追踪器 - 追踪借用来源,用于运行时借用失败的诊断
LeaseTracker
实现了一个简单的系统,使用守卫和 Rust 的 core::panic::Location
API 来追踪并提供了关于内部可变性原语失败时的借用来源的信息。
no-std
兼容;使用 alloc
为 Arc
和自旋锁用于非常短的临界区。
许可证
根据以下任一许可证授权
- Apache 许可证 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则根据 Apache-2.0 许可证定义的,任何有意提交以包含在工作中的贡献,都应按照上述方式双许可,不附加任何额外条款或条件。
lib.rs
:
重型租赁追踪器 - 追踪借用并提供有关运行时借用/别名违规的更多有用错误的函数
LeaseTracker
类型,用于智能单元格,如hv-cell
的AtomicRefCell
(仅在启用track-leases
功能的调试中)Lease
类型,用于智能引用/守卫类型,如hv-cell
的AtomicRef/
AtomicRefMut
和ArcRef/ArcRefMut
OpenLease
类型,表示动态借用的来源,用于诊断用途
与 no_std
兼容,但需要 alloc
才能使用 Arc
、Cow
和 String
,并在内部使用自旋锁来同步添加/删除 LeaseTracker
的 OpenLease
。
hv-lease-tracker
并不是一个高性能的 crate,如果借用性能至关重要,那么在发布构建中可能需要禁用。它仅用于诊断信息。
依赖项
~195KB