xwrust::xwos::cthd

Function freeze

source
pub fn freeze() -> XwEr
Expand description

冻结当前线程

线程并不能随时冻结,必须满足下列条件之一:

  • 系统已经开始准备进入低功耗;
  • 线程正准备开始迁移。

线程可通过 shld_frz() 判断是否满足冻结条件。

通常冻结操作之前,还需要对资源进行释放,以防止线程阻碍系统进入低功耗; 通常解冻操作之后,还需要重新获取资源。

§返回值

  • 0: 睡眠成功
  • -EPERM: 当前不需要冻结线程

§上下文

  • 线程

§示例

use use xwrust::xwos::cthd;

if cthd::shld_frz() {
    let rc = cthd::freeze();
}