xwrust::xwos::cthd

Function sleep_from

source
pub fn sleep_from(from: XwTm, dur: XwTm) -> (XwEr, XwTm)
Expand description

线程从一个时间起点睡眠到另一个时间点

调用此方法前,需要先确定一个时间起点 from ,可以通过 xwtm::now() 获取当前的系统时间作为起点。 唤醒时间为 from + dur 。 此方法会将线程唤醒时的系统时间返回,可作为下一次调用的时间起点。 由此,循环调用,可以形成周期为 dur ,更为精确的周期性睡眠唤醒。

§参数说明

  • from: 时间起点
  • dur: 期望被唤醒的时间增量

§返回值 (rc, from)

  • rc
    • 0: 睡眠成功
    • -EINTR: 睡眠被中断
    • -ETIMEDOUT: 时间点是过去
  • from: 线程唤醒时的系统时间

§上下文

  • 线程

§示例

use use xwrust::xwos::cthd;
use use xwrust::xwtx;

let mut from = xwtm::now();
loop {
    let mut (rc, from) = cthd::sleep_from(from, xwtm::s(1)); // 从from开始睡眠1s
}