2 个版本
0.1.1 | 2024 年 4 月 4 日 |
---|---|
0.1.0 | 2024 年 4 月 3 日 |
140 在 无标准库
每月 770 次下载
在 2 个 Crates 中使用 (通过 hermit-sync)
17KB
356 行
one-shot-mutex
一次性锁,在竞争时引发 panic 而不是 (死) 锁。
这些锁不允许竞争,如果它们已经锁定,则会在 lock
上引发 panic 而不是阻塞。这在竞争会导致错误的情况下很有用,例如在单线程程序中,竞争会导致死锁。
use one_shot_mutex::OneShotMutex;
static X: OneShotMutex<i32> = OneShotMutex::new(42);
let x = X.lock();
// This panics instead of deadlocking.
// let x2 = X.lock();
// Once we unlock the mutex, we can lock it again.
drop(x);
let x = X.lock();
有关 API 文档,请参阅 docs。
许可证
根据以下任一项许可
- Apache 许可证 2.0 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确说明,否则根据 Apache-2.0 许可证定义的,你提交的任何有意包含在作品中的贡献,都应按上述方式双许可,而不附加任何其他条款或条件。
依赖项
~160KB