#linux #futex #mutex #rwlock #condvar

无std rustix-futex-sync

基于Linux futex的同步

9 个版本

0.2.2 2024年6月12日
0.2.1 2023年12月4日
0.1.5 2023年10月9日
0.1.3 2023年8月27日

#233 in Unix APIs

Download history 151/week @ 2024-04-22 113/week @ 2024-04-29 45/week @ 2024-05-06 196/week @ 2024-05-13 126/week @ 2024-05-20 85/week @ 2024-05-27 65/week @ 2024-06-03 188/week @ 2024-06-10 49/week @ 2024-06-17 69/week @ 2024-06-24 115/week @ 2024-07-01 33/week @ 2024-07-08 59/week @ 2024-07-15 18/week @ 2024-07-22 35/week @ 2024-07-29 23/week @ 2024-08-05

138 个月下载量
1111 直接) 包中使用

Apache-2.0…

88KB
1K SLoC

rustix-futex-sync

基于Linux futex的同步

Github Actions CI Status zulip chat crates.io page docs.rs docs

基于futex的Linux实现 MutexRwLockCondvarOnceOnceLock,以及从std中的futex代码派生出的 RawMutexRawRwLockRawCondvar,使用 rustix 进行futex操作,使用 lock_api 提供大部分公共的 MutexRwLock API。

lock_api 不支持poisoning,因此省略了对poisoning的支持。

在这个库中,CondvarRawCondvarRawMutexOnce保证是围绕单个AtomicU32repr(transparent)包装器。RawRwLock保证是围绕两个AtomicU32repr(C)包装器。这些AtomicU32的内容没有文档说明,除了所有这些类型的const fn new()INIT保证将它们初始化为零。

依赖项

~1.6–10MB
~108K SLoC