zx_timer_set

摘要

启动计时器。

声明

#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 - slackdeadline + 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 为负数。

另请参阅