summaryrefslogtreecommitdiffstats
path: root/vendor/parking_lot_core
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:32 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:32 +0000
commit4547b622d8d29df964fa2914213088b148c498fc (patch)
tree9fc6b25f3c3add6b745be9a2400a6e96140046e9 /vendor/parking_lot_core
parentReleasing progress-linux version 1.66.0+dfsg1-1~progress7.99u1. (diff)
downloadrustc-4547b622d8d29df964fa2914213088b148c498fc.tar.xz
rustc-4547b622d8d29df964fa2914213088b148c498fc.zip
Merging upstream version 1.67.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/parking_lot_core')
-rw-r--r--vendor/parking_lot_core/.cargo-checksum.json2
-rw-r--r--vendor/parking_lot_core/Cargo.toml4
-rw-r--r--vendor/parking_lot_core/src/parking_lot.rs8
-rw-r--r--vendor/parking_lot_core/src/thread_parker/generic.rs2
-rw-r--r--vendor/parking_lot_core/src/thread_parker/unix.rs14
-rw-r--r--vendor/parking_lot_core/src/thread_parker/windows/keyed_event.rs66
-rw-r--r--vendor/parking_lot_core/src/thread_parker/windows/waitaddress.rs29
7 files changed, 69 insertions, 56 deletions
diff --git a/vendor/parking_lot_core/.cargo-checksum.json b/vendor/parking_lot_core/.cargo-checksum.json
index 25f569e0b..196164748 100644
--- a/vendor/parking_lot_core/.cargo-checksum.json
+++ b/vendor/parking_lot_core/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"ce9a63db10b0941d6bfe4e6cacd2ae3fe330a9c2cf1ba221578f46402fd23ed9","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5","build.rs":"29e629057144d1238dcd8ea70ad6cbb6ec14ca742797af3fa9335710ff5cbaaa","src/lib.rs":"def53c1ff1d4a05e6261aa9b75ac089a51ecc15642e1320202e5c6836e2bb732","src/parking_lot.rs":"509f15c9f578187032063d2791cf71b2bfa8d4d0f29a2779bfdb0a87b03186dd","src/spinwait.rs":"0d73980c72e84fd75c73693f0b351e097353b46f4b8aaa67b3dde7c721817bf7","src/thread_parker/generic.rs":"6cd0e99511fda16ab5830ebaf0a3c9ff935b96e27a905373508e54021f186508","src/thread_parker/linux.rs":"6837304ca62e1774b0d811f9a61f4a7a70b8914a905b69aa4808220fb9063879","src/thread_parker/mod.rs":"afaf652e242d5235d38f5749f3b12dc6def793dee40cd6c820e1dd45a70a5ac8","src/thread_parker/redox.rs":"38fbede41817b6606a5612ee9456940eaf627540a4aa39de8452e355ca1df306","src/thread_parker/sgx.rs":"3b6190eb90fd88d5eee5370213a1de408cce24ded04bfb0f374c3bbf10752187","src/thread_parker/unix.rs":"857d687674523f8ca3bbd8097257293c3a443b21b60066270ceed9abdd9a445e","src/thread_parker/wasm.rs":"86e954d009d57d2dfdbca71e5c0f116a99a182af83b7e51ed5b14fc55b2f7b01","src/thread_parker/wasm_atomic.rs":"6fbc09accc9df9d42444cec6f55d3eed2c7078a474485fa269a9f503da2ee1c5","src/thread_parker/windows/keyed_event.rs":"9adb0c830bc49c32e3ae609577e2205c42fb84d49a7abe2891f4e647e3bf1829","src/thread_parker/windows/mod.rs":"3073e82ecc46d713b2c4296459ead9f3788d29e7b5c9be4b68d29d98b5a803ce","src/thread_parker/windows/waitaddress.rs":"4681fc85e71ff9313ece440e14f3a0309b735813133f7372895730d557672f64","src/util.rs":"285e6133150645525f2ca1ece41f6d35bad4e7c5e08b42b20c99d2a97e04a974","src/word_lock.rs":"9ba49082359c35ad5b4e8d219fede1ffca75225f9ccb971cbba01f20e2ed2738"},"package":"09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"} \ No newline at end of file
+{"files":{"Cargo.toml":"894a414fd99c9650a87b880fbc3b14e35e7bb33eb9c318404ec260a7a9b34fb9","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5","build.rs":"29e629057144d1238dcd8ea70ad6cbb6ec14ca742797af3fa9335710ff5cbaaa","src/lib.rs":"def53c1ff1d4a05e6261aa9b75ac089a51ecc15642e1320202e5c6836e2bb732","src/parking_lot.rs":"b08d6c00de6fc342a1b4f0268b056789ad1300aa8a9c4fb7ad4d49514cfab72c","src/spinwait.rs":"0d73980c72e84fd75c73693f0b351e097353b46f4b8aaa67b3dde7c721817bf7","src/thread_parker/generic.rs":"414bd3114b40f7665efe59fa4c5033d2401eafc58b57a9ba5803949d26cc0454","src/thread_parker/linux.rs":"6837304ca62e1774b0d811f9a61f4a7a70b8914a905b69aa4808220fb9063879","src/thread_parker/mod.rs":"afaf652e242d5235d38f5749f3b12dc6def793dee40cd6c820e1dd45a70a5ac8","src/thread_parker/redox.rs":"38fbede41817b6606a5612ee9456940eaf627540a4aa39de8452e355ca1df306","src/thread_parker/sgx.rs":"3b6190eb90fd88d5eee5370213a1de408cce24ded04bfb0f374c3bbf10752187","src/thread_parker/unix.rs":"4a314ea3b0b2a22cd3857bedcd1d15d843365acbc085f0cdc9ae085d600760da","src/thread_parker/wasm.rs":"86e954d009d57d2dfdbca71e5c0f116a99a182af83b7e51ed5b14fc55b2f7b01","src/thread_parker/wasm_atomic.rs":"6fbc09accc9df9d42444cec6f55d3eed2c7078a474485fa269a9f503da2ee1c5","src/thread_parker/windows/keyed_event.rs":"758b475e6931d5cb8715786e8ef3b4e6b0d017fb163ea5d8cc8b6b728454238b","src/thread_parker/windows/mod.rs":"3073e82ecc46d713b2c4296459ead9f3788d29e7b5c9be4b68d29d98b5a803ce","src/thread_parker/windows/waitaddress.rs":"8eee4b444a00e7ad83bdc50eb4b4af36610dfa4690329e8947962fef04cb1000","src/util.rs":"285e6133150645525f2ca1ece41f6d35bad4e7c5e08b42b20c99d2a97e04a974","src/word_lock.rs":"9ba49082359c35ad5b4e8d219fede1ffca75225f9ccb971cbba01f20e2ed2738"},"package":"4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0"} \ No newline at end of file
diff --git a/vendor/parking_lot_core/Cargo.toml b/vendor/parking_lot_core/Cargo.toml
index 4706c434a..f4daf6f02 100644
--- a/vendor/parking_lot_core/Cargo.toml
+++ b/vendor/parking_lot_core/Cargo.toml
@@ -12,7 +12,7 @@
[package]
edition = "2018"
name = "parking_lot_core"
-version = "0.9.3"
+version = "0.9.4"
authors = ["Amanieu d'Antras <amanieu@gmail.com>"]
description = "An advanced API for creating custom synchronization primitives."
keywords = [
@@ -59,7 +59,7 @@ version = "0.2.8"
version = "0.2.95"
[target."cfg(windows)".dependencies.windows-sys]
-version = "0.36.0"
+version = "0.42.0"
features = [
"Win32_Foundation",
"Win32_System_LibraryLoader",
diff --git a/vendor/parking_lot_core/src/parking_lot.rs b/vendor/parking_lot_core/src/parking_lot.rs
index 9b8452582..b3886197d 100644
--- a/vendor/parking_lot_core/src/parking_lot.rs
+++ b/vendor/parking_lot_core/src/parking_lot.rs
@@ -724,6 +724,10 @@ pub unsafe fn park(
///
/// The `callback` function is called while the queue is locked and must not
/// panic or call into any function in `parking_lot`.
+///
+/// The `parking_lot` functions are not re-entrant and calling this method
+/// from the context of an asynchronous signal handler may result in undefined
+/// behavior, including corruption of internal state and/or deadlocks.
#[inline]
pub unsafe fn unpark_one(
key: usize,
@@ -801,6 +805,10 @@ pub unsafe fn unpark_one(
/// You should only call this function with an address that you control, since
/// you could otherwise interfere with the operation of other synchronization
/// primitives.
+///
+/// The `parking_lot` functions are not re-entrant and calling this method
+/// from the context of an asynchronous signal handler may result in undefined
+/// behavior, including corruption of internal state and/or deadlocks.
#[inline]
pub unsafe fn unpark_all(key: usize, unpark_token: UnparkToken) -> usize {
// Lock the bucket for the given key
diff --git a/vendor/parking_lot_core/src/thread_parker/generic.rs b/vendor/parking_lot_core/src/thread_parker/generic.rs
index 990bcb7fc..93c94faf7 100644
--- a/vendor/parking_lot_core/src/thread_parker/generic.rs
+++ b/vendor/parking_lot_core/src/thread_parker/generic.rs
@@ -8,8 +8,8 @@
//! A simple spin lock based thread parker. Used on platforms without better
//! parking facilities available.
-use core::sync::atomic::{AtomicBool, Ordering};
use core::hint::spin_loop;
+use core::sync::atomic::{AtomicBool, Ordering};
use std::thread;
use std::time::Instant;
diff --git a/vendor/parking_lot_core/src/thread_parker/unix.rs b/vendor/parking_lot_core/src/thread_parker/unix.rs
index a75e1768b..88b6df839 100644
--- a/vendor/parking_lot_core/src/thread_parker/unix.rs
+++ b/vendor/parking_lot_core/src/thread_parker/unix.rs
@@ -127,12 +127,22 @@ impl super::ThreadParkerT for ThreadParker {
impl ThreadParker {
/// Initializes the condvar to use CLOCK_MONOTONIC instead of CLOCK_REALTIME.
- #[cfg(any(target_os = "macos", target_os = "ios", target_os = "android", target_os = "espidf"))]
+ #[cfg(any(
+ target_os = "macos",
+ target_os = "ios",
+ target_os = "android",
+ target_os = "espidf"
+ ))]
#[inline]
unsafe fn init(&self) {}
/// Initializes the condvar to use CLOCK_MONOTONIC instead of CLOCK_REALTIME.
- #[cfg(not(any(target_os = "macos", target_os = "ios", target_os = "android", target_os = "espidf")))]
+ #[cfg(not(any(
+ target_os = "macos",
+ target_os = "ios",
+ target_os = "android",
+ target_os = "espidf"
+ )))]
#[inline]
unsafe fn init(&self) {
let mut attr = MaybeUninit::<libc::pthread_condattr_t>::uninit();
diff --git a/vendor/parking_lot_core/src/thread_parker/windows/keyed_event.rs b/vendor/parking_lot_core/src/thread_parker/windows/keyed_event.rs
index bbe45a4cc..302bab585 100644
--- a/vendor/parking_lot_core/src/thread_parker/windows/keyed_event.rs
+++ b/vendor/parking_lot_core/src/thread_parker/windows/keyed_event.rs
@@ -55,42 +55,40 @@ impl KeyedEvent {
#[allow(non_snake_case)]
pub fn create() -> Option<KeyedEvent> {
- unsafe {
- let ntdll = GetModuleHandleA(b"ntdll.dll\0".as_ptr());
- if ntdll == 0 {
- return None;
- }
-
- let NtCreateKeyedEvent =
- GetProcAddress(ntdll, b"NtCreateKeyedEvent\0".as_ptr())?;
- let NtReleaseKeyedEvent =
- GetProcAddress(ntdll, b"NtReleaseKeyedEvent\0".as_ptr())?;
- let NtWaitForKeyedEvent =
- GetProcAddress(ntdll, b"NtWaitForKeyedEvent\0".as_ptr())?;
-
- let NtCreateKeyedEvent: extern "system" fn(
- KeyedEventHandle: *mut HANDLE,
- DesiredAccess: u32,
- ObjectAttributes: *mut ffi::c_void,
- Flags: u32,
- ) -> NTSTATUS = mem::transmute(NtCreateKeyedEvent);
- let mut handle = MaybeUninit::uninit();
- let status = NtCreateKeyedEvent(
- handle.as_mut_ptr(),
- GENERIC_READ | GENERIC_WRITE,
- ptr::null_mut(),
- 0,
- );
- if status != STATUS_SUCCESS {
- return None;
- }
+ let ntdll = unsafe { GetModuleHandleA(b"ntdll.dll\0".as_ptr()) };
+ if ntdll == 0 {
+ return None;
+ }
- Some(KeyedEvent {
- handle: handle.assume_init(),
- NtReleaseKeyedEvent: mem::transmute(NtReleaseKeyedEvent),
- NtWaitForKeyedEvent: mem::transmute(NtWaitForKeyedEvent),
- })
+ let NtCreateKeyedEvent =
+ unsafe { GetProcAddress(ntdll, b"NtCreateKeyedEvent\0".as_ptr())? };
+ let NtReleaseKeyedEvent =
+ unsafe { GetProcAddress(ntdll, b"NtReleaseKeyedEvent\0".as_ptr())? };
+ let NtWaitForKeyedEvent =
+ unsafe { GetProcAddress(ntdll, b"NtWaitForKeyedEvent\0".as_ptr())? };
+
+ let NtCreateKeyedEvent: extern "system" fn(
+ KeyedEventHandle: *mut HANDLE,
+ DesiredAccess: u32,
+ ObjectAttributes: *mut ffi::c_void,
+ Flags: u32,
+ ) -> NTSTATUS = unsafe { mem::transmute(NtCreateKeyedEvent) };
+ let mut handle = MaybeUninit::uninit();
+ let status = NtCreateKeyedEvent(
+ handle.as_mut_ptr(),
+ GENERIC_READ | GENERIC_WRITE,
+ ptr::null_mut(),
+ 0,
+ );
+ if status != STATUS_SUCCESS {
+ return None;
}
+
+ Some(KeyedEvent {
+ handle: unsafe { handle.assume_init() },
+ NtReleaseKeyedEvent: unsafe { mem::transmute(NtReleaseKeyedEvent) },
+ NtWaitForKeyedEvent: unsafe { mem::transmute(NtWaitForKeyedEvent) },
+ })
}
#[inline]
diff --git a/vendor/parking_lot_core/src/thread_parker/windows/waitaddress.rs b/vendor/parking_lot_core/src/thread_parker/windows/waitaddress.rs
index dde0db7b6..ef6cb44e3 100644
--- a/vendor/parking_lot_core/src/thread_parker/windows/waitaddress.rs
+++ b/vendor/parking_lot_core/src/thread_parker/windows/waitaddress.rs
@@ -32,24 +32,21 @@ pub struct WaitAddress {
impl WaitAddress {
#[allow(non_snake_case)]
pub fn create() -> Option<WaitAddress> {
- unsafe {
- // MSDN claims that that WaitOnAddress and WakeByAddressSingle are
- // located in kernel32.dll, but they are lying...
- let synch_dll =
- GetModuleHandleA(b"api-ms-win-core-synch-l1-2-0.dll\0".as_ptr());
- if synch_dll == 0 {
- return None;
- }
+ // MSDN claims that that WaitOnAddress and WakeByAddressSingle are
+ // located in kernel32.dll, but they are lying...
+ let synch_dll = unsafe { GetModuleHandleA(b"api-ms-win-core-synch-l1-2-0.dll\0".as_ptr()) };
+ if synch_dll == 0 {
+ return None;
+ }
- let WaitOnAddress = GetProcAddress(synch_dll, b"WaitOnAddress\0".as_ptr())?;
- let WakeByAddressSingle =
- GetProcAddress(synch_dll, b"WakeByAddressSingle\0".as_ptr())?;
+ let WaitOnAddress = unsafe { GetProcAddress(synch_dll, b"WaitOnAddress\0".as_ptr())? };
+ let WakeByAddressSingle =
+ unsafe { GetProcAddress(synch_dll, b"WakeByAddressSingle\0".as_ptr())? };
- Some(WaitAddress {
- WaitOnAddress: mem::transmute(WaitOnAddress),
- WakeByAddressSingle: mem::transmute(WakeByAddressSingle),
- })
- }
+ Some(WaitAddress {
+ WaitOnAddress: unsafe { mem::transmute(WaitOnAddress) },
+ WakeByAddressSingle: unsafe { mem::transmute(WakeByAddressSingle) },
+ })
}
#[inline]