Timer 对象有一个 Slack 的概念。Slack 定义系统可以如何更改计时器的截止时间。Slack 允许系统在内部合并计时器和类似于计时器的事件,从而提高性能或效率。
Slack 由两部分组成:类型和数量。类型描述了可以如何应用 Slack:
- 允许 ZX_TIMER_SLACK_CENTER 与更早和更晚的计时器合并。
- ZX_TIMER_SLACK_EARLY 合并仅适用于较早的计时器。
- ZX_TIMER_SLACK_LATE 合并仅适用于后续计时器。
金额是指允许与截止期限的偏差。例如,具有 ZX_TIMER_SLACK_EARLY 和 5us 的计时器可能会在截止时间之前最多 5 微秒触发。具有 ZX_TIMER_SLACK_CENTER 和 7 毫秒的计时器可以在截止时限前 7 毫秒到截止时间后 7 毫秒的任意位置触发。
类似于计时器的系统调用
Slack 还可以应用于屏蔽接受截止期限参数(如 zx_nanosleep()
)的系统调用。
默认值和作业政策
对于 Timer 对象,在创建和设置计时器时指定 Slack。对于其他采用截止期限但没有 Slack 参数的系统调用,Slack 类型和数量由作业的政策指定。请参见zx_job_set_policy()
。