about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDylan DPC <dylan.dpc@gmail.com>2020-03-16 01:30:28 +0100
committerGitHub <noreply@github.com>2020-03-16 01:30:28 +0100
commit957241fcf964ef24105b794308b6acb990824096 (patch)
tree665d3eaf308ed12af1cac58448656e9a6bd1a06d
parente5de0b13febfe9a9a3f0dc07489a7d19d5525e3b (diff)
parent0605abe3bb7b602cbe70a72797fdd6ca90d76e92 (diff)
downloadrust-957241fcf964ef24105b794308b6acb990824096.tar.gz
rust-957241fcf964ef24105b794308b6acb990824096.zip
Rollup merge of #69858 - da-x:windows-precise-time, r=Dylan-DPC
std: on Windows, use GetSystemTimePreciseAsFileTime if it is available

This implements #67266.
-rw-r--r--src/libstd/sys/windows/c.rs4
-rw-r--r--src/libstd/sys/windows/time.rs2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/libstd/sys/windows/c.rs b/src/libstd/sys/windows/c.rs
index d7e1a801030..7f93ef87953 100644
--- a/src/libstd/sys/windows/c.rs
+++ b/src/libstd/sys/windows/c.rs
@@ -1045,6 +1045,10 @@ compat_fn! {
                     _dwBufferSize: DWORD) -> BOOL {
         SetLastError(ERROR_CALL_NOT_IMPLEMENTED as DWORD); 0
     }
+    pub fn GetSystemTimePreciseAsFileTime(lpSystemTimeAsFileTime: LPFILETIME)
+                                          -> () {
+        GetSystemTimeAsFileTime(lpSystemTimeAsFileTime)
+    }
     pub fn SleepConditionVariableSRW(ConditionVariable: PCONDITION_VARIABLE,
                                      SRWLock: PSRWLOCK,
                                      dwMilliseconds: DWORD,
diff --git a/src/libstd/sys/windows/time.rs b/src/libstd/sys/windows/time.rs
index 86667ca7ab2..900260169c7 100644
--- a/src/libstd/sys/windows/time.rs
+++ b/src/libstd/sys/windows/time.rs
@@ -74,7 +74,7 @@ impl SystemTime {
     pub fn now() -> SystemTime {
         unsafe {
             let mut t: SystemTime = mem::zeroed();
-            c::GetSystemTimeAsFileTime(&mut t.t);
+            c::GetSystemTimePreciseAsFileTime(&mut t.t);
             t
         }
     }