diff options
| author | bors <bors@rust-lang.org> | 2019-01-08 11:30:19 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-01-08 11:30:19 +0000 |
| commit | 2f19f8cec96d96d83b393fbbdd61204b87d423e6 (patch) | |
| tree | ae5078862bbd938ef0fc6f1d820a4174f246b22a /src/libstd/sys/windows | |
| parent | 7ad470c0a64ed0801708cee6657e82be097a29ac (diff) | |
| parent | 255a3f3e183150e30d411628d5996bd3a183bd6f (diff) | |
| download | rust-2f19f8cec96d96d83b393fbbdd61204b87d423e6.tar.gz rust-2f19f8cec96d96d83b393fbbdd61204b87d423e6.zip | |
Auto merge of #56988 - alexcrichton:monotonic-instant, r=sfackler
std: Force `Instant::now()` to be monotonic This commit is an attempt to force `Instant::now` to be monotonic through any means possible. We tried relying on OS/hardware/clock implementations, but those seem buggy enough that we can't rely on them in practice. This commit implements the same hammer Firefox recently implemented (noted in #56612) which is to just keep whatever the lastest `Instant::now()` return value was in memory, returning that instead of the OS looks like it's moving backwards. Closes #48514 Closes #49281 cc #51648 cc #56560 Closes #56612 Closes #56940
Diffstat (limited to 'src/libstd/sys/windows')
| -rw-r--r-- | src/libstd/sys/windows/time.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libstd/sys/windows/time.rs b/src/libstd/sys/windows/time.rs index 60c96959186..8e8e9195cf4 100644 --- a/src/libstd/sys/windows/time.rs +++ b/src/libstd/sys/windows/time.rs @@ -40,6 +40,14 @@ impl Instant { t } + pub fn actually_monotonic() -> bool { + false + } + + pub const fn zero() -> Instant { + Instant { t: 0 } + } + pub fn sub_instant(&self, other: &Instant) -> Duration { // Values which are +- 1 need to be considered as basically the same // units in time due to various measurement oddities, according to |
