Crates.io | rustix-futex-sync |
lib.rs | rustix-futex-sync |
version | 0.2.2 |
source | src |
created_at | 2023-08-25 16:46:46.588455 |
updated_at | 2024-06-12 16:07:53.974716 |
description | Linux futex-based synchronization |
homepage | |
repository | https://github.com/sunfishcode/rustix-futex-sync |
max_upload_size | |
id | 954910 |
size | 123,647 |
Linux futex-based implementations of Mutex
, RwLock
, Condvar
,
Once
, and OnceLock
, as well as RawMutex
, RawRwLock
, and
RawCondvar
, derived from the futex code in std, factored out to a
standalone no_std
crate using rustix
to do the futex and lock_api
to
provide most of the public Mutex
and RwLock
API.
lock_api
does not support poisoning, so support for poisoning is omitted.
In this library, Condvar
, RawCondvar
, RawMutex
, and Once
are guaranteed
to be repr(transparent)
wrappers around a single AtomicU32
. RawRwLock
is
guaranteed to be a repr(C)
wrapper around two AtomicU32
s. The contents of
these AtomicU32
s are not documented, except that all these types'
const fn new()
and INIT
are guaranteed to initialize them to all zeros.