1个不稳定版本
0.1.0 | 2020年1月30日 |
---|
#24 in #reactor
11KB
125 代码行数(不含注释)
内部计划任务运行器时钟控制机制
这个库最初是为Ratman和libqaul编写的工具库,但也可以在任何需要直接调度控制的反应器设置中使用,而不必暴露所有任务。
示例:Ratman
默认情况下,Ratman内部每个独立任务都以硬件允许的速度运行,即轮询任务在轮询循环之间不会等待。这通常很好,在非电池或CPU受限的系统上。然而,在电池或CPU受限的系统上,这可能导致巨大的电池耗尽。这就是ClockCtrl
发挥作用的地方,这是一个可以配置为各种类型的时钟接收器,可以操作Ratman内部运行的任务的运行时行为。
use clockctrl::{ClockCtrl, Error, Interval, Scheduler};
use std::time::Duration;
let mut clc = ClockCtrl::new();
clc.setup(MyTasks::Journal)
.set(Interval::Timed(Duration::from_secs(10)));
clc.setup(MyTasks::Switch)
.set(Interval::Stepped)
.fence(move |_| {
// ...
});
依赖关系
~5–13MB
~166K SLoC