1 个不稳定版本
0.1.0 | 2020年5月23日 |
---|
53 在 #resolution
7KB
113 行(不包括注释)
一个可以推后的 tokio 延迟
它如何工作?
与正常的 tokio::time::Delay
类似,但在解决之前会检查其目标解决时间是否已移动,并在需要时重新安排自己。
目前,这通过丢弃之前的 Delay
并实例化一个新的来重新安排自己。
我该如何使用它?
async fn typical_usage() {
let target = std::time::Instant::now() + std::time::Duration::from_millis(10);
let delay = ResettableDelay::new(target);
let handle = delay.get_handle();
std::thread::spawn(move || {
std::thread::sleep(std::time::Duration::from_millis(5));
let target = std::time::Instant::now() + std::time::Duration::from_millis(10);
handle.postpone(target)
});
delay.await;
}
依赖项
~5MB
~86K SLoC