总结
创建计时器。
声明
#include <zircon/syscalls.h>
zx_status_t zx_timer_create(uint32_t options,
zx_clock_t clock_id,
zx_handle_t* out);
说明
zx_timer_create()
会创建一个计时器,这个对象可以在到达指定时间点时发出信号。唯一有效的 clock_id 是 ZX_CLOCK_MONOTONIC
。
options 值指定合并行为,用于控制系统是否可以根据其他待处理的计时器提前或延后触发时间。
可能的值包括:
ZX_TIMER_SLACK_CENTER
ZX_TIMER_SLACK_EARLY
ZX_TIMER_SLACK_LATE
在选项中传递 0 相当于 ZX_TIMER_SLACK_CENTER
。
如需了解详情,请参阅计时器延迟。
返回的句柄具有 ZX_RIGHT_DUPLICATE
、ZX_RIGHT_TRANSFER
、ZX_RIGHT_WRITE
、ZX_RIGHT_SIGNAL
、ZX_RIGHT_WAIT
和 ZX_RIGHT_INSPECT
权限。
权限
调用方作业政策必须允许 ZX_POL_NEW_TIMER
。
返回值
zx_timer_create()
会在成功时返回 ZX_OK
。如果失败,则返回负的错误值。
错误
ZX_ERR_INVALID_ARGS
out 是无效的指针或 NULL,或者 options 不是任何 ZX_TIMER_SLACK
值,或者 clock_id 是 ZX_CLOCK_MONOTONIC
以外的任何值。
ZX_ERR_NO_MEMORY
由于内存不足而失败。
用户空间没有什么方法来处理此(不太可能)错误。在以后的 build 中,此错误不会再发生。