摘要
启动计时器。
声明
#include <zircon/syscalls.h>
zx_status_t zx_timer_set(zx_handle_t handle,
zx_time_t deadline,
zx_duration_t slack);
说明
zx_timer_set()
会启动一个单次计时器,该计时器会在
deadline 已过。如果之前对 zx_timer_set()
的调用
待处理的计时器,系统会取消上一个计时器
可以根据需要取消断言 ZX_TIMER_SIGNALED
。
deadline 参数用于指定与以下日期相关的截止期限:
ZX_CLOCK_MONOTONIC
。要等待相对时间间隔
在截止期限内使用 zx_deadline_after()
返回值。
如需触发计时器,请立即传递一个小于或等于 0
的截止时间。
当计时器触发时,它会断言 ZX_TIMER_SIGNALED
。取消声明
信号,再次调用 zx_timer_cancel()
或 zx_timer_set()
。
slack 参数指定了一个范围,范围为 deadline - slack 至 deadline + Slack(在此期间允许触发计时器)。系统 使用此参数作为提示来合并相邻的计时器。
精确的合并行为由 options 参数控制
在创建计时器时指定的。ZX_TIMER_SLACK_EARLY
仅允许
在最后期限触发 - slack 间隔和 ZX_TIMER_SLACK_LATE
仅允许在 deadline + slack 间隔内触发。默认
选项值为 0 表示 ZX_TIMER_SLACK_CENTER
,并且允许提前和
延迟触发,并且有效间隔为 deadline - slack
截止期限 + Slack
权限
handle 的类型必须为 ZX_OBJ_TYPE_TIMER
且包含 ZX_RIGHT_WRITE
。
返回值
如果成功,zx_timer_set()
会返回 ZX_OK
。
如果失败,则返回负的错误值。
错误
ZX_ERR_BAD_HANDLE
handle 不是有效的句柄。
ZX_ERR_ACCESS_DENIED
handle 缺少正确的 ZX_RIGHT_WRITE
。
ZX_ERR_OUT_OF_RANGE
slack 为负数。