diff options
Diffstat (limited to 'src/libstd/sync/condvar.rs')
| -rw-r--r-- | src/libstd/sync/condvar.rs | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/libstd/sync/condvar.rs b/src/libstd/sync/condvar.rs index a18370dc68e..389c9c4a066 100644 --- a/src/libstd/sync/condvar.rs +++ b/src/libstd/sync/condvar.rs @@ -12,11 +12,10 @@ use prelude::v1::*; use sync::atomic::{AtomicUsize, Ordering}; use sync::{mutex, MutexGuard, PoisonError}; -use sys::time::SteadyTime; use sys_common::condvar as sys; use sys_common::mutex as sys_mutex; use sys_common::poison::{self, LockResult}; -use time::Duration; +use time::{Instant, Duration}; /// A type indicating whether a timed wait on a condition variable returned /// due to a time out or not. @@ -345,14 +344,13 @@ impl StaticCondvar { where F: FnMut(LockResult<&mut T>) -> bool { // This could be made more efficient by pushing the implementation into // sys::condvar - let start = SteadyTime::now(); + let start = Instant::now(); let mut guard_result: LockResult<MutexGuard<'a, T>> = Ok(guard); while !f(guard_result .as_mut() .map(|g| &mut **g) .map_err(|e| PoisonError::new(&mut **e.get_mut()))) { - let now = SteadyTime::now(); - let consumed = &now - &start; + let consumed = start.elapsed(); let guard = guard_result.unwrap_or_else(|e| e.into_inner()); let (new_guard_result, timed_out) = if consumed > dur { (Ok(guard), WaitTimeoutResult(true)) |
