#mutex #deadlock #single-thread #no-alloc

无 std one-shot-mutex

一次性锁,在竞争时引发 panic 而不是 (死) 锁

2 个版本

0.1.1 2024 年 4 月 4 日
0.1.0 2024 年 4 月 3 日

140无标准库

Download history 167/week @ 2024-04-23 298/week @ 2024-04-30 212/week @ 2024-05-07 315/week @ 2024-05-14 243/week @ 2024-05-21 76/week @ 2024-05-28 252/week @ 2024-06-04 146/week @ 2024-06-11 284/week @ 2024-06-18 299/week @ 2024-06-25 186/week @ 2024-07-02 218/week @ 2024-07-09 216/week @ 2024-07-16 99/week @ 2024-07-23 187/week @ 2024-07-30 180/week @ 2024-08-06

每月 770 次下载
2 个 Crates 中使用 (通过 hermit-sync)

MIT/Apache

17KB
356

one-shot-mutex

Crates.io docs.rs CI

一次性锁,在竞争时引发 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 许可证定义的,你提交的任何有意包含在作品中的贡献,都应按上述方式双许可,而不附加任何其他条款或条件。

依赖项

~160KB