diff options
Diffstat (limited to 'src/libstd/sys/windows')
| -rw-r--r-- | src/libstd/sys/windows/mod.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libstd/sys/windows/mod.rs b/src/libstd/sys/windows/mod.rs index b6d080109df..b38945d8916 100644 --- a/src/libstd/sys/windows/mod.rs +++ b/src/libstd/sys/windows/mod.rs @@ -162,10 +162,10 @@ fn dur2timeout(dur: Duration) -> libc::DWORD { // * Nanosecond precision is rounded up // * Greater than u32::MAX milliseconds (50 days) is rounded up to INFINITE // (never time out). - dur.secs().checked_mul(1000).and_then(|ms| { - ms.checked_add((dur.extra_nanos() as u64) / 1_000_000) + dur.as_secs().checked_mul(1000).and_then(|ms| { + ms.checked_add((dur.subsec_nanos() as u64) / 1_000_000) }).and_then(|ms| { - ms.checked_add(if dur.extra_nanos() % 1_000_000 > 0 {1} else {0}) + ms.checked_add(if dur.subsec_nanos() % 1_000_000 > 0 {1} else {0}) }).map(|ms| { if ms > <libc::DWORD>::max_value() as u64 { libc::INFINITE |
