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 dependabot Bot added the kind/dependencies For PRs that update dependencies or related components label Oct 29, 2026
@hyperlight-gh-bot

This comment has been minimized.

@jsturtevant

Copy link
Copy Markdown
Contributor

@dependabot rebase

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 force-pushed the dependabot/cargo/parking_lot-0.13.0 branch from 7677bca to f28c276 Compare October 29, 2026 22:32
@hyperlight-gh-bot

Copy link
Copy Markdown

Benchmark Results

Measured commit: f28c2761bc7a
Baseline commit: 3233086b0243

kvm / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
374.89 µs (➖ 1.00x faster)
byte_chunks 782.18 ns (➖ 1.02x slower)
vec_bytes 630.96 ns (➖ 1.08x slower)

payload_allocation

slot_pool_segmented
65536 142.17 ns (➖ 1.02x faster)
262144 520.82 ns (➖ 1.00x faster)

sandboxes

create_initialized_and_drop
medium 82.01 ms (➖ 1.00x slower)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
7.68 ns (➖ 1.00x faster) 7.70 ns (➖ 1.00x slower) 7.69 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 93.09 µs (➖ 1.01x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 1.91 µs (➖ 1.09x faster) 2.05 µs (➖ 1.07x slower)
262144 7.70 µs (➖ 1.09x faster) 7.26 µs (➖ 1.04x slower)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 1.02 µs (➖ 1.01x slower) 1.04 µs (➖ 1.02x slower)
65536 6.64 µs (➖ 1.04x slower) 6.18 µs (➖ 1.08x faster)
262144 28.10 µs (➖ 1.04x slower)
kvm / intel (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
672.07 µs (➖ 1.01x faster)
byte_chunks 690.44 ns (➖ 1.02x faster)
vec_bytes 508.90 ns (➖ 1.04x faster)

payload_allocation

slot_pool_segmented
65536 171.52 ns (➖ 1.00x faster)
262144 501.07 ns (➖ 1.01x slower)

sandboxes

create_initialized_and_drop
medium 115.43 ms (➖ 1.05x slower)

slot_pool

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

snapshot_files

load_snapshot_unverified
small 44.90 µs (➖ 1.02x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.15 µs (➖ 1.02x slower) 2.13 µs (➖ 1.00x faster)
262144 7.55 µs (➖ 1.00x slower) 7.52 µs (➖ 1.00x slower)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 722.28 ns (➖ 1.01x slower) 729.03 ns (➖ 1.01x faster)
65536 7.11 µs (➖ 1.02x faster) 7.00 µs (➖ 1.02x faster)
262144 31.39 µs (➖ 1.05x slower)
mshv3 / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
380.07 µs (➖ 1.04x slower)
byte_chunks 940.16 ns (➖ 1.05x faster)
vec_bytes 712.11 ns (➖ 1.02x faster)

payload_allocation

slot_pool_segmented
65536 255.74 ns (➖ 1.33x slower)
262144 733.44 ns (➖ 1.01x slower)

sandboxes

create_initialized_and_drop
medium 58.44 ms (➖ 1.01x faster)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
9.49 ns (➖ 1.01x faster) 9.50 ns (➖ 1.00x faster) 9.63 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 84.92 µs (➖ 1.00x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.23 µs (➖ 1.01x faster) 2.38 µs (➖ 1.08x faster)
262144 9.71 µs (➖ 1.01x slower) 11.53 µs (➖ 1.01x slower)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 1.28 µs (➖ 1.08x slower) 1.28 µs (➖ 1.04x faster)
65536 10.11 µs (➖ 1.04x slower) 8.25 µs (➖ 1.49x faster)
262144 35.97 µs (➖ 1.06x faster)
mshv3 / intel (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
665.14 µs (➖ 1.00x slower)
byte_chunks 915.88 ns (➖ 1.00x slower)
vec_bytes 664.38 ns (➖ 1.01x slower)

payload_allocation

slot_pool_segmented
65536 260.35 ns (➖ 1.03x slower)
262144 669.46 ns (➖ 1.01x slower)

sandboxes

create_initialized_and_drop
medium 72.59 ms (➖ 1.07x slower)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
8.75 ns (➖ 1.01x faster) 8.72 ns (➖ 1.09x faster) 8.76 ns (➖ 1.01x faster)

snapshot_files

load_snapshot_unverified
small 46.89 µs (➖ 1.05x faster)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.32 µs (➖ 1.01x slower) 2.30 µs (➖ 1.00x slower)
262144 8.00 µs (➖ 1.00x slower) 8.06 µs (➖ 1.00x slower)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 917.87 ns (➖ 1.01x faster) 923.37 ns (➖ 1.00x faster)
65536 7.55 µs (➖ 1.00x slower) 7.60 µs (➖ 1.00x slower)
262144 41.72 µs (➖ 1.09x slower)
hyperv-ws2025 / amd (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
1.89 ms (➖ 1.00x faster)
byte_chunks 1.22 µs (➖ 1.03x slower)
vec_bytes 785.14 ns (➖ 1.01x slower)

payload_allocation

slot_pool_segmented
65536 239.50 ns (➖ 1.01x faster)
262144 785.15 ns (➖ 1.01x faster)

sandboxes

create_initialized_and_drop
medium 79.53 ms (➖ 1.06x faster)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
10.01 ns (➖ 1.01x faster) 9.98 ns (➖ 1.01x faster) 9.90 ns (➖ 1.10x faster)

snapshot_files

load_snapshot_unverified
small 645.80 µs (➖ 1.06x faster)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.35 µs (➖ 1.10x faster) 2.38 µs (➖ 1.02x slower)
262144 9.18 µs (➖ 1.01x slower) 9.38 µs (➖ 1.00x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 1.24 µs (➖ 1.02x faster) 1.28 µs (➖ 1.01x faster)
65536 9.66 µs (➖ 1.08x slower) 8.95 µs (➖ 1.07x faster)
262144 38.43 µs (➖ 1.26x faster)
hyperv-ws2025 / intel (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

decode_vec_bytes_copy encode_control
3.06 ms (➖ 1.04x slower)
byte_chunks 1.20 µs (➖ 1.00x slower)
vec_bytes 763.29 ns (➖ 1.01x faster)

payload_allocation

slot_pool_segmented
65536 209.14 ns (➖ 1.01x faster)
262144 757.94 ns (➖ 1.02x slower)

sandboxes

create_initialized_and_drop
medium 106.26 ms (➖ 1.04x faster)

slot_pool

alloc_dealloc_4096 alloc_dealloc_128 alloc_dealloc_1500
10.25 ns (➖ 1.01x slower) 9.88 ns (➖ 1.01x slower) 9.78 ns (➖ 1.01x slower)

snapshot_files

load_snapshot_unverified
small 491.68 µs (➖ 1.05x faster)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
65536 2.49 µs (➖ 1.00x faster) 2.30 µs (➖ 1.01x faster)
262144 7.54 µs (➖ 1.00x slower) 7.64 µs (➖ 1.01x slower)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
8192 1.10 µs (➖ 1.03x slower) 1.22 µs (➖ 1.16x slower)
65536 8.45 µs (➖ 1.01x faster) 8.81 µs (➖ 1.03x slower)
262144 45.47 µs (➖ 1.14x faster)

Reported by cargo ci bench-report --candidate run:40966654003 --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.

1 participant