NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #43 most downloaded on crates.io
More compact and efficient implementations of the standard synchronization primitives.
Last release 1 years ago
03 Oct 2025
Release timing varies
gaps range from 4 weeks to 1.9 years
Some releases are documented
notes for 25 of 57 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
58 releases · first in 2016
Fixed Miri when the hardware-lock-elision feature is enabled
hardware-lock-elision feature is enabled (#491)into_arc(_fair) methods (#472)RawRwLock::bump_*() not releasing lock when there are multiple readers (#471)Fix parked upgraders potentially not being woken up after a write lock
PARKED_WRITER_BIT after a timeoutOne column per quarter.
Release parking_lot 0.12.3
Release parking_lot 0.12.3
Release parking_lot 0.12.2, parking_lot_core 0.9.10, lock_api 0.4.12
Release parking_lot 0.12.2, parking_lot_core 0.9.10, lock_api 0.4.12
with_upgraded twice on a ArcRwLockUpgradableReadGuard (#431)RwLockUpgradeableReadGuard::with_upgradedFixed incorrect memory ordering in RwLock.
RwLock. (#344)Condvar::wait_while convenience methods (#343)Removed used of deprecated spin_loop_hint.
asm! macro. (#304)spin_loop_hint. (#314)Fixed incorrect memory orderings on RwLock and WordLock. (#294, #292)
RwLock and WordLock. (#294, #292)Arc-based lock guards. (#291)fence. (#292)Fix bounds on Send and Sync impls for lock guards.
RwLock. (#260)Remove deprecated and unsound MappedRwLockWriteGuard::downgrade.
is_locked method to mutex types. (#235)RawReentrantMutex public. (#233)send_guard feature. (#240)Instant type from the instant crate on wasm32-unknown-unknown. (#231)MappedRwLockWriteGuard::downgrade. (#244)Raw* traits have been made unsafe since they assume
the current thread holds the lock. (#243)Update minimum version of lock_api.
lock_api.Use llvm_asm! instead of the deprecated asm!.
Mutex, RwLock, etc in a const context. (#217)FairMutex which always uses fair unlocking. (#204)create_hashtable. (#210)llvm_asm! instead of the deprecated asm!. (#223)Upgrade smallvec dependency to 1.0 in parking_lot_core.
mem::uninitialized with mem::MaybeUninit.WaitTimeoutResult and OnceState take self by value instead of reference.Re-export lock_api (0.3.1) from parking_lot
Removed deprecated CloudABI support.
smallvec. (#266)Fix race conditions in deadlock detection.
Fixed potential deadlock when upgrading a RwLock.
Return if or how many threads were notified from Condvar::notify_*
Condvar::notify_*Nothing published for this version
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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixed unsound Sync/Send impls for ArcMutexGuard.
Sync/Send impls for ArcMutexGuard. (#349)ArcMutexGuard::into_arc. (#350)Nothing published for this version
Nothing published for this version
Nothing published for this version
- Update for latest nightly.
Added [Raw]ReentrantMutex::is_owned.
[Raw]ReentrantMutex::is_owned. (#280)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
Deprecate unsound MappedRwLockWriteGuard::downgrade
MappedRwLockWriteGuard::downgrade (#198)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
Your coding agent can read these notes before it upgrades. Set up the MCP server →