NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #38 most downloaded on crates.io
An advanced API for creating custom synchronization primitives.
Last release 1 years ago
03 Oct 2025
Release timing varies
gaps range from 2 weeks to 13 months
Some releases are documented
notes for 24 of 50 stable releases
3 versions withdrawn
withdrawn after publishing
10 years old
53 releases · first in 2016
Switched from windows-targets to windows-link.
windows-targets to windows-link. (#493)thread-id dependency with std::thread::ThreadId (#483)ThreadParker.park_until (#481)Use Release/Acquire ordering in thread_parker::Backend::create
One column per quarter.
Nothing published for this version
Fixed RwLockUpgradeableReadGuard::with_upgraded.
RwLockUpgradeableReadGuard::with_upgraded. (#393)ReentrantMutex::bump lock count. (#390)Mark guards with #[clippy::has_significant_drop] (#369, #371)
#[clippy::has_significant_drop] (#369, #371)atomic_usize default feature to support platforms without atomics. (#380)Update windows-sys dependency to 0.45.
- Add support for watchOS.
Update use of libc::timespec to prepare for future libc version
libc::timespec to prepare for future libc version (#363)Bump windows-sys dependency to 0.42.
Bump windows-sys dependency to 0.36.
Enable const new() on lock types on stable.
MutexGuard::leak function. (#333)Bump windows-sys dependency to 0.32.
Re-export lock_api (0.3.1) from parking_lot
Nothing published for this version
Nothing published for this version
Nothing published for this version
- Updated smallvec to 1.6.
Fixed assertion failure on OpenBSD.
Removed deprecated CloudABI support.
smallvec. (#266)Fix race conditions in deadlock detection.
Nothing published for this version
Add support for wasm32-unknown-unknown under the "nightly" feature.
wasm32-unknown-unknown under the "nightly" feature. (#226)Fixed potential deadlock when upgrading a RwLock.
Return if or how many threads were notified from Condvar::notify_*
Condvar::notify_*Export RawMutex, RawRwLock and RawThreadId.
RawMutex, RawRwLock and RawThreadId.Fixed compile error on Windows with old cfg_if version.
- Fixed Android build.
This release moves most of the code for type-safe Mutex and RwLock types into a separate crate called lock_api. This new crate is compatible with no_s
This release moves most of the code for type-safe Mutex and RwLock types
into a separate crate called lock_api. This new crate is compatible with
no_std and provides Mutex and RwLock type-safe wrapper types from a raw
mutex type which implements the RawMutex or RawRwLock trait. The API
provided by the wrapper types can be extended by implementing more traits on
the raw mutex type which provide more functionality (e.g. RawMutexTimed). See
the crate documentation for more details.
There are also several major changes:
MutexGuard (and other guard types) are no longer inherent
methods and must be called as MutexGuard::method(self). This avoids
conflicts with methods from the inner type.MutexGuard (and other guard types) add the unlocked method which
temporarily unlocks a mutex, runs the given closure, and then re-locks the
mutex.MutexGuard (and other guard types) add the bump method which gives a
chance for other threads to acquire the mutex by temporarily unlocking it and
re-locking it. However this is optimized for the common case where there are
no threads waiting on the lock, in which case no unlocking is performed.MutexGuard (and other guard types) add the map method which returns a
MappedMutexGuard which holds only a subset of the original locked type. The
MappedMutexGuard type is identical to MutexGuard except that it does not
support the unlocked and bump methods, and can't be used with CondVar.Nothing published for this version
Nothing published for this version
Nothing published for this version
Use NonZeroUsize in GetThreadId::nonzero_thread_id
unsafe and document some internal methods (#148)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →