about summary refs log tree commit diff
path: root/library/std/src/sys/locks/rwlock
diff options
context:
space:
mode:
authorChris Denton <chris@chrisdenton.dev>2024-03-03 22:06:00 +0000
committerChris Denton <chris@chrisdenton.dev>2024-03-05 00:19:42 +0000
commitf700641bd9eb7ec3b36b4d44eafae35ba970eea4 (patch)
tree2bcda35248fd9a6b15cd821e97e666549e44c36f /library/std/src/sys/locks/rwlock
parent89b78304e82dc5114e3b2faa0fbec747a28a2b37 (diff)
downloadrust-f700641bd9eb7ec3b36b4d44eafae35ba970eea4.tar.gz
rust-f700641bd9eb7ec3b36b4d44eafae35ba970eea4.zip
Windows: Implement mutex using futex
Well, the Windows equivalent: `WaitOnAddress`, `WakeByAddressSingle` and `WakeByAddressAll`.
Diffstat (limited to 'library/std/src/sys/locks/rwlock')
-rw-r--r--library/std/src/sys/locks/rwlock/mod.rs7
-rw-r--r--library/std/src/sys/locks/rwlock/windows7.rs (renamed from library/std/src/sys/locks/rwlock/windows.rs)0
2 files changed, 4 insertions, 3 deletions
diff --git a/library/std/src/sys/locks/rwlock/mod.rs b/library/std/src/sys/locks/rwlock/mod.rs
index 0564f1fe6fa..675931c64bd 100644
--- a/library/std/src/sys/locks/rwlock/mod.rs
+++ b/library/std/src/sys/locks/rwlock/mod.rs
@@ -1,5 +1,6 @@
 cfg_if::cfg_if! {
     if #[cfg(any(
+        all(target_os = "windows", not(target_vendor = "win7")),
         target_os = "linux",
         target_os = "android",
         target_os = "freebsd",
@@ -14,9 +15,9 @@ cfg_if::cfg_if! {
     } else if #[cfg(target_family = "unix")] {
         mod queue;
         pub use queue::RwLock;
-    } else if #[cfg(target_os = "windows")] {
-        mod windows;
-        pub use windows::RwLock;
+    } else if #[cfg(all(target_os = "windows", target_vendor = "win7"))] {
+        mod windows7;
+        pub use windows7::RwLock;
     } else if #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] {
         mod sgx;
         pub use sgx::RwLock;
diff --git a/library/std/src/sys/locks/rwlock/windows.rs b/library/std/src/sys/locks/rwlock/windows7.rs
index e69415baac4..e69415baac4 100644
--- a/library/std/src/sys/locks/rwlock/windows.rs
+++ b/library/std/src/sys/locks/rwlock/windows7.rs