chore(deps): update rust crate lock_api to 0.5.0 #2404

Open
renovate wants to merge 1 commit from renovate/lock_api-0.x into main
Collaborator

This PR contains the following updates:

Package Type Update Change
lock_api workspace.dependencies minor 0.4.13 → 0.5.0

Release Notes

Amanieu/parking_lot (lock_api)

v0.5.0

Compare Source

  • Signficantly improved Mutex and RwLock performance under contention by
    deferring waking up parked threads until after the lock is released. (#​545)
  • Added per-acquisition state to lock_api raw locks. RawMutex::Guard
    replaces GuardMarker; rwlocks have separate SharedGuard, ExclusiveGuard,
    and UpgradableGuard types. Unlock operations consume this state, while
    upgrade and downgrade operations return replacement state. Bump and raw
    condition-variable waits borrow and update the state. Consuming operations
    must release their acquisition on unwind; borrowing operations must restore
    ownership and valid state, or abort if restoration fails. (#​544)
  • Raised the MSRV to Rust 1.95 and upgraded all crates to edition 2024. (#​533)
  • Removed the hardware-lock-elision feature. (#​533)
  • Removed automatic eventual fairness. Fair unlocking remains available through
    the explicit fair-unlock APIs. This removes UnparkResult::be_fair. (#​533)
  • Removed the no-op lock_api/nightly feature. (#​533)
  • Removed the legacy lock_api const_new methods and the redundant
    parking_lot const_* constructor functions; the corresponding new
    methods can be called in constant contexts. (#​533)
  • Replaced the recursive read methods on RwLock with a dedicated reader-biased
    RecursiveRwLock type. The RawRwLockRecursive and RawRwLockRecursiveTimed
    extension traits have been removed from lock_api. (#​533)
  • Added Once::new_completed for constructing a Once in the completed state. (#​520)
  • Added Once::{is_completed, wait, wait_force} and the corresponding
    OnceState query methods. (#​533)
  • Made additional lock, timeout, parking, and spin-wait accessors usable in
    constant contexts. (#​533)
  • Added into_inner_with_raw to lock_api's Mutex, RwLock, and ReentrantMutex. (#​524)
  • Added RawCondvar, RawCondvarTimed, and the generic Condvar wrapper to
    lock_api, and implemented parking_lot::Condvar using them. Custom raw
    condition variables may allow spurious wakeups; their notification methods
    must then return false or 0. parking_lot::Condvar still guarantees no
    spurious wakeups and exact notification counts. (#​523) (#​533)
  • Corrected the Send and Sync bounds of lock guards in lock_api. (#​533)
  • Made RawMutex::is_locked and RawRwLock::{is_locked, is_locked_exclusive} required methods. (#​533)
  • Renamed MappedRwLockReadGuard::try_map_or_else to try_map_or_err. (#​533)
  • Clarified the safety requirements of raw lock implementations, including
    acquire/release synchronization, moving or dropping a locked raw lock,
    preserving the original lock mode on a failed upgrade, and stable thread IDs.
    Acquisitions may unwind without leaving a new acquisition held; consuming
    guard operations release their acquisition on unwind, while bump and wait
    operations must restore ownership or abort. (#​533) (#​544)
  • Clarified the aliasing requirements of unsafe raw-access, force-unlock, and
    guard-construction APIs in lock_api. (#​533)
  • Guard unlocked and unlocked_fair operations now abort if re-locking panics.
    Default raw-lock bump implementations also abort if re-locking panics. (#​533)
  • Guard with_upgraded operations abort if raw upgrading or downgrading panics,
    preserving continuous lock ownership. (#​544)
  • Parking-lot operations in parking_lot_core are now guaranteed to never
    unwind. (#​533)
  • Documented that parking-lot-based synchronization primitives must not be used
    internally by global allocators. (#​533)
  • Fixed unlock_upgradable_fair not forcing a fair handoff. (#​533)
  • Fixed conditional Condvar waits reporting a timeout without rechecking the predicate. (#​533)
  • Fixed the generic thread parker continuously busy-spinning while parked. (#​533)
  • Fixed parking on WASI by using the pthread backend when the nightly atomic
    intrinsics are unavailable, including on stable threaded WASI targets. (#​538)
  • Fixed timed waits on ESP-IDF using the wrong clock. (#​533)
  • Made timed waits on Apple platforms independent of wall-clock changes. (#​533)
  • Fixed the futex timeout ABI on 32-bit Linux targets, including time64-only
    architectures, with fallback to time32 when the kernel lacks time64 support. (#​533)
  • Corrected RwLock deadlock tracking to avoid false positives and missed
    cycles, and prevented dependency feature unification from enabling tracking
    when only parking_lot_core/deadlock_detection is enabled. (#​533)
  • Added Once deadlock tracking and made overlapping wait cycles report as a
    single component. (#​533)
  • Fixed compilation on L4Re. (#​549)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [lock_api](https://github.com/Amanieu/parking_lot) | workspace.dependencies | minor | `0.4.13` → `0.5.0` | --- ### Release Notes <details> <summary>Amanieu/parking_lot (lock_api)</summary> ### [`v0.5.0`](https://github.com/Amanieu/parking_lot/blob/HEAD/CHANGELOG.md#0130-parkinglot--0100-parkinglotcore--050-lockapi---2026-10-21) [Compare Source](https://github.com/Amanieu/parking_lot/compare/lock_api-v0.4.14...lock_api-v0.5.0) - Signficantly improved `Mutex` and `RwLock` performance under contention by deferring waking up parked threads until after the lock is released. ([#&#8203;545](https://github.com/Amanieu/parking_lot/issues/545)) - Added per-acquisition state to `lock_api` raw locks. `RawMutex::Guard` replaces `GuardMarker`; rwlocks have separate `SharedGuard`, `ExclusiveGuard`, and `UpgradableGuard` types. Unlock operations consume this state, while upgrade and downgrade operations return replacement state. Bump and raw condition-variable waits borrow and update the state. Consuming operations must release their acquisition on unwind; borrowing operations must restore ownership and valid state, or abort if restoration fails. ([#&#8203;544](https://github.com/Amanieu/parking_lot/issues/544)) - Raised the MSRV to Rust 1.95 and upgraded all crates to edition 2024. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Removed the `hardware-lock-elision` feature. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Removed automatic eventual fairness. Fair unlocking remains available through the explicit fair-unlock APIs. This removes `UnparkResult::be_fair`. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Removed the no-op `lock_api/nightly` feature. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Removed the legacy `lock_api` `const_new` methods and the redundant `parking_lot` `const_*` constructor functions; the corresponding `new` methods can be called in constant contexts. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Replaced the recursive read methods on `RwLock` with a dedicated reader-biased `RecursiveRwLock` type. The `RawRwLockRecursive` and `RawRwLockRecursiveTimed` extension traits have been removed from `lock_api`. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Added `Once::new_completed` for constructing a `Once` in the completed state. ([#&#8203;520](https://github.com/Amanieu/parking_lot/issues/520)) - Added `Once::{is_completed, wait, wait_force}` and the corresponding `OnceState` query methods. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Made additional lock, timeout, parking, and spin-wait accessors usable in constant contexts. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Added `into_inner_with_raw` to `lock_api`'s `Mutex`, `RwLock`, and `ReentrantMutex`. ([#&#8203;524](https://github.com/Amanieu/parking_lot/issues/524)) - Added `RawCondvar`, `RawCondvarTimed`, and the generic `Condvar` wrapper to `lock_api`, and implemented `parking_lot::Condvar` using them. Custom raw condition variables may allow spurious wakeups; their notification methods must then return `false` or `0`. `parking_lot::Condvar` still guarantees no spurious wakeups and exact notification counts. ([#&#8203;523](https://github.com/Amanieu/parking_lot/issues/523)) ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Corrected the `Send` and `Sync` bounds of lock guards in `lock_api`. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Made `RawMutex::is_locked` and `RawRwLock::{is_locked, is_locked_exclusive}` required methods. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Renamed `MappedRwLockReadGuard::try_map_or_else` to `try_map_or_err`. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Clarified the safety requirements of raw lock implementations, including acquire/release synchronization, moving or dropping a locked raw lock, preserving the original lock mode on a failed upgrade, and stable thread IDs. Acquisitions may unwind without leaving a new acquisition held; consuming guard operations release their acquisition on unwind, while bump and wait operations must restore ownership or abort. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) ([#&#8203;544](https://github.com/Amanieu/parking_lot/issues/544)) - Clarified the aliasing requirements of unsafe raw-access, force-unlock, and guard-construction APIs in `lock_api`. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Guard `unlocked` and `unlocked_fair` operations now abort if re-locking panics. Default raw-lock bump implementations also abort if re-locking panics. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Guard `with_upgraded` operations abort if raw upgrading or downgrading panics, preserving continuous lock ownership. ([#&#8203;544](https://github.com/Amanieu/parking_lot/issues/544)) - Parking-lot operations in `parking_lot_core` are now guaranteed to never unwind. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Documented that parking-lot-based synchronization primitives must not be used internally by global allocators. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Fixed `unlock_upgradable_fair` not forcing a fair handoff. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Fixed conditional `Condvar` waits reporting a timeout without rechecking the predicate. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Fixed the generic thread parker continuously busy-spinning while parked. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Fixed parking on WASI by using the pthread backend when the nightly atomic intrinsics are unavailable, including on stable threaded WASI targets. ([#&#8203;538](https://github.com/Amanieu/parking_lot/issues/538)) - Fixed timed waits on ESP-IDF using the wrong clock. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Made timed waits on Apple platforms independent of wall-clock changes. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Fixed the futex timeout ABI on 32-bit Linux targets, including time64-only architectures, with fallback to time32 when the kernel lacks time64 support. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Corrected `RwLock` deadlock tracking to avoid false positives and missed cycles, and prevented dependency feature unification from enabling tracking when only `parking_lot_core/deadlock_detection` is enabled. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Added `Once` deadlock tracking and made overlapping wait cycles report as a single component. ([#&#8203;533](https://github.com/Amanieu/parking_lot/issues/533)) - Fixed compilation on L4Re. ([#&#8203;549](https://github.com/Amanieu/parking_lot/issues/549)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjcuNSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2Ny41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJEZXBlbmRlbmNpZXMiLCJEZXBlbmRlbmNpZXMvUmVub3ZhdGUiXX0=-->
chore(deps): update rust crate lock_api to 0.5.0
All checks were successful
Auto Labeler / Apply labels based on changed files (pull_request_target) Successful in 4s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m7s
Checks / Prek / Check changed files (pull_request) Successful in 6s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m18s
Checks / Changelog / Check changelog is added (pull_request_target) Successful in 8s
Update flake hashes / update-flake-hashes (pull_request) Successful in 1m22s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 10m5s
3793435089
renovate force-pushed renovate/lock_api-0.x from 3793435089
All checks were successful
Auto Labeler / Apply labels based on changed files (pull_request_target) Successful in 4s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m7s
Checks / Prek / Check changed files (pull_request) Successful in 6s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m18s
Checks / Changelog / Check changelog is added (pull_request_target) Successful in 8s
Update flake hashes / update-flake-hashes (pull_request) Successful in 1m22s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 10m5s
to f556269913
All checks were successful
Checks / Changelog / Check changelog is added (pull_request_target) Successful in 8s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m11s
Checks / Prek / Check changed files (pull_request) Successful in 8s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m12s
Update flake hashes / update-flake-hashes (pull_request) Successful in 1m24s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 8m56s
2026-10-26 06:06:28 +00:00
Compare
All checks were successful
Checks / Changelog / Check changelog is added (pull_request_target) Successful in 8s
Required
Details
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m11s
Checks / Prek / Check changed files (pull_request) Successful in 8s
Required
Details
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m12s
Required
Details
Update flake hashes / update-flake-hashes (pull_request) Successful in 1m24s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 8m56s
Required
Details
This pull request is blocked because it's outdated.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin 'renovate/lock_api-0.x:renovate/lock_api-0.x'
git switch 'renovate/lock_api-0.x'
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
continuwuation/continuwuity!2404
No description provided.