10 releases
0.2.3 | Aug 27, 2024 |
---|---|
0.2.2 | Jun 12, 2024 |
0.2.1 | Dec 4, 2023 |
0.1.5 | Oct 9, 2023 |
0.1.3 | Aug 27, 2023 |
#104 in Concurrency
366 downloads per month
Used in 11 crates
(5 directly)
88KB
975 lines
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.
Dependencies
~1.6–9.5MB
~115K SLoC