let time = handle.inner.driver().time(); let clock = handle.inner.driver().clock();
// This may or may not return Some (depending on how it races with the // thread). If it does return None, however, the timer should complete // synchronously.
time.process_at_time(0, time.time_source().now(clock) + 2_000_000_000);
jh.join().unwrap();
})
}
#[test] fn drop_timer() {
model(|| { let rt = rt(false); let handle = rt.handle();
let handle_ = handle.clone(); let jh = thread::spawn(move || { let entry = TimerEntry::new(
handle_.inner.clone(),
handle_.inner.driver().clock().now() + Duration::from_secs(1),
);
pin!(entry);
let _ = entry
.as_mut()
.poll_elapsed(&mut Context::from_waker(futures::task::noop_waker_ref())); let _ = entry
.as_mut()
.poll_elapsed(&mut Context::from_waker(futures::task::noop_waker_ref()));
});
thread::yield_now();
let time = handle.inner.driver().time(); let clock = handle.inner.driver().clock();
// advance 2s in the future.
time.process_at_time(0, time.time_source().now(clock) + 2_000_000_000);
jh.join().unwrap();
})
}
#[test] fn change_waker() {
model(|| { let rt = rt(false); let handle = rt.handle();
let handle_ = handle.clone(); let jh = thread::spawn(move || { let entry = TimerEntry::new(
handle_.inner.clone(),
handle_.inner.driver().clock().now() + Duration::from_secs(1),
);
pin!(entry);
let _ = entry
.as_mut()
.poll_elapsed(&mut Context::from_waker(futures::task::noop_waker_ref()));
// This may or may not return a wakeup time.
handle.process_at_time( 0,
handle
.time_source()
.instant_to_tick(start + Duration::from_millis(1500)),
);
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.18Bemerkung:
(vorverarbeitet am 2026-06-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.