Skip to content

chore(deps): bump parking_lot from 0.12.5 to 0.13.0 - #1992

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/parking_lot-0.13.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/parking_lot-0.13.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 29, 2026

Copy link
Copy Markdown
Contributor

Bumps parking_lot from 0.12.5 to 0.13.0.

Release notes

Sourced from parking_lot's releases.

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. (#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

... (truncated)

Changelog

Sourced from parking_lot's changelog.

0.13.0 (parking_lot), 0.10.0 (parking_lot_core), 0.5.0 (lock_api) - 2026-10-21

  • 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)

... (truncated)

Commits
  • 1a5c3dd Update changelog
  • ec07063 chore: release
  • f369d24 Merge pull request #538 from napi-rs/wasi-threads-parker
  • 2f4103f Remove the WASI backend note from stable restrictions
  • a3e8717 Reuse existing CI jobs for WASI coverage
  • c2bfc7b Merge pull request #549 from Amanieu/fix-l4re-condvar-clock
  • 696f28b Don't use pthread_condattr_setclock on L4RE
  • 52941c0 Share the libc dependency between Unix and WASI
  • 4fde6a7 Align the Rust setup action with existing workflows
  • f0ce547 Reuse the pthread backend for WASI on stable
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [parking_lot](https://github.com/Amanieu/parking_lot) from 0.12.5 to 0.13.0.
- [Release notes](https://github.com/Amanieu/parking_lot/releases)
- [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md)
- [Commits](Amanieu/parking_lot@parking_lot-v0.12.5...parking_lot-v0.13.0)

---
updated-dependencies:
- dependency-name: parking_lot
  dependency-version: 0.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the kind/dependencies For PRs that update dependencies or related components label Oct 29, 2026
@hyperlight-gh-bot

Copy link
Copy Markdown

Benchmark Results

Measured commit: 7677bcace43e
Baseline commit: 7e2066b07c68

kvm / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
371.90 µs (➖ 1.00x slower)
byte_chunks 791.14 ns (➖ 1.03x slower)
vec_bytes 580.90 ns (➖ 1.03x faster)

payload_allocation

slot_pool_segmented
65536 141.28 ns (➖ 1.00x faster)
262144 520.92 ns (➖ 1.06x faster)

sandboxes

create_initialized_and_drop
medium 81.04 ms (➖ 1.02x faster)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
7.68 ns (➖ 1.00x faster) 7.68 ns (➖ 1.00x faster) 7.68 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 92.56 µs (➖ 1.01x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 1.92 µs (➖ 1.10x faster) 2.02 µs (➖ 1.06x slower)
262144 8.11 µs (➖ 1.14x slower) 7.10 µs (➖ 1.00x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 1.02 µs (➖ 1.00x slower) 1.03 µs (➖ 1.00x faster)
65536 6.26 µs (➖ 1.00x faster) 6.23 µs (➖ 1.03x faster)
262144 27.20 µs (➖ 1.00x slower)
kvm / intel (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
681.35 µs (➖ 1.01x slower)
byte_chunks 671.60 ns (➖ 1.01x slower)
vec_bytes 506.38 ns (➖ 1.01x faster)

payload_allocation

slot_pool_segmented
65536 173.29 ns (➖ 1.01x slower)
262144 497.28 ns (➖ 1.05x faster)

sandboxes

create_initialized_and_drop
medium 73.85 ms (➖ 1.08x faster)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
6.80 ns (➖ 1.00x slower) 6.79 ns (➖ 1.00x faster) 6.81 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 45.74 µs (➖ 1.04x faster)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.15 µs (➖ 1.01x faster) 2.14 µs (➖ 1.01x faster)
262144 7.54 µs (➖ 1.01x faster) 7.55 µs (➖ 1.01x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 737.11 ns (➖ 1.00x slower) 724.96 ns (➖ 1.05x faster)
65536 7.15 µs (➖ 1.03x faster) 7.09 µs (➖ 1.00x slower)
262144 28.96 µs (➖ 1.00x faster)
mshv3 / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
273.62 µs (➖ 1.11x faster)
byte_chunks 959.61 ns (➖ 1.02x slower)
vec_bytes 720.52 ns (➖ 1.00x slower)

payload_allocation

slot_pool_segmented
65536 192.86 ns (➖ 1.00x faster)
262144 730.77 ns (➖ 1.00x slower)

sandboxes

create_initialized_and_drop
medium 62.72 ms (➖ 1.03x faster)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
9.51 ns (➖ 1.05x faster) 10.44 ns (➖ 1.08x slower) 10.42 ns (➖ 1.07x slower)

snapshot_files

load_snapshot_unverified
small 86.12 µs (➖ 1.00x faster)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.26 µs (➖ 1.01x slower) 2.40 µs (➖ 1.02x faster)
262144 9.57 µs (➖ 1.01x faster) 10.55 µs (➖ 1.07x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 1.32 µs (➖ 1.08x slower) 1.21 µs (➖ 1.12x faster)
65536 8.35 µs (➖ 1.13x faster) 8.45 µs (➖ 1.13x faster)
262144 35.74 µs (➖ 1.04x faster)
mshv3 / intel (Linux) (❌ 1.56x)

Top regressions

  • function_call_codec/decode_vec_bytes_copy — ❌ 1.56x slower

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
1.12 ms (❌ 1.56x slower)
byte_chunks 924.56 ns (➖ 1.02x slower)
vec_bytes 670.58 ns (➖ 1.02x slower)

payload_allocation

slot_pool_segmented
65536 269.93 ns (➖ 1.06x slower)
262144 668.16 ns (➖ 1.02x faster)

sandboxes

create_initialized_and_drop
medium 70.44 ms (➖ 1.00x slower)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
8.70 ns (➖ 1.00x slower) 8.69 ns (➖ 1.00x faster) 8.70 ns (➖ 1.01x faster)

snapshot_files

load_snapshot_unverified
small 49.35 µs (➖ 1.10x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.31 µs (➖ 1.01x faster) 2.29 µs (➖ 1.00x faster)
262144 7.96 µs (➖ 1.01x faster) 7.98 µs (➖ 1.01x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 917.56 ns (➖ 1.01x faster) 901.26 ns (➖ 1.02x faster)
65536 7.46 µs (➖ 1.02x faster) 7.51 µs (➖ 1.02x faster)
262144 38.96 µs (➖ 1.09x faster)
hyperv-ws2025 / amd (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
2.02 ms (➖ 1.04x slower)
byte_chunks 1.16 µs (➖ 1.05x faster)
vec_bytes 776.02 ns (➖ 1.01x slower)

payload_allocation

slot_pool_segmented
65536 231.23 ns (➖ 1.01x slower)
262144 814.74 ns (➖ 1.03x slower)

sandboxes

create_initialized_and_drop
medium 85.50 ms (➖ 1.06x faster)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
10.87 ns (➖ 1.09x slower) 10.10 ns (➖ 1.00x slower) 10.22 ns (➖ 1.03x slower)

snapshot_files

load_snapshot_unverified
small 774.94 µs (➖ 1.04x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.51 µs (➖ 1.03x faster) 2.61 µs (➖ 1.11x slower)
262144 10.34 µs (➖ 1.15x slower) 9.95 µs (➖ 1.04x slower)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 1.37 µs (➖ 1.12x slower) 1.42 µs (➖ 1.16x slower)
65536 10.24 µs (➖ 1.12x slower) 9.75 µs (➖ 1.12x slower)
262144 43.45 µs (➖ 1.21x faster)
hyperv-ws2025 / intel (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
2.83 ms (➖ 1.05x faster)
byte_chunks 1.20 µs (➖ 1.01x slower)
vec_bytes 768.27 ns (➖ 1.01x faster)

payload_allocation

slot_pool_segmented
65536 211.68 ns (➖ 1.07x faster)
262144 832.48 ns (➖ 1.11x slower)

sandboxes

create_initialized_and_drop
medium 101.40 ms (➖ 1.03x faster)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
10.04 ns (➖ 1.06x faster) 9.69 ns (➖ 1.03x faster) 9.62 ns (➖ 1.04x faster)

snapshot_files

load_snapshot_unverified
small 772.67 µs (➖ 1.21x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.46 µs (➖ 1.00x faster) 2.27 µs (➖ 1.01x faster)
262144 7.53 µs (➖ 1.01x slower) 7.50 µs (➖ 1.00x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 1.10 µs (➖ 1.03x slower) 1.23 µs (➖ 1.14x slower)
65536 8.34 µs (➖ 1.02x slower) 8.65 µs (➖ 1.03x slower)
262144 49.61 µs (➖ 1.00x faster)

Reported by cargo ci bench-report --candidate run:40810202588 --config-file bench_report.toml.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/dependencies For PRs that update dependencies or related components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants