Update Rust crate parking_lot to 0.13 #23

Merged
Doridian merged 1 commit from renovate/parking_lot-0.x into main 2026-10-21 10:04:33 -07:00
Owner

This PR contains the following updates:

Package Type Update Change
parking_lot dependencies minor 0.12 → 0.13

Release Notes

Amanieu/parking_lot (parking_lot)

v0.13.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: (in timezone America/Los_Angeles)

  • 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 | |---|---|---|---| | [parking_lot](https://github.com/Amanieu/parking_lot) | dependencies | minor | `0.12` → `0.13` | --- ### Release Notes <details> <summary>Amanieu/parking_lot (parking_lot)</summary> ### [`v0.13.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/parking_lot-v0.12.5...parking_lot-v0.13.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**: (in timezone America/Los_Angeles) - 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzQuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE3NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Doridian deleted branch renovate/parking_lot-0.x 2026-10-21 10:04:33 -07:00
Sign in to join this conversation.
No reviewers
No milestone
No project
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
FoxDen/Trunk8!23
No description provided.