摘要
向计数器添加值。
声明
#include <zircon/syscalls.h>
zx_status_t zx_event_add(zx_handle_t handle, int64_t value);
说明
zx_counter_add()
会将 value 添加到 handle 引用的计数器。
在相加结果之后,如果计数器的值为:
小于或等于 0 -
ZX_COUNTER_NON_POSITIVE
将被断言,ZX_COUNTER_POSITIVE
将被取消断言。- 大于零 - 系统会断言
ZX_COUNTER_POSITIVE
并取消断言ZX_COUNTER_NON_POSITIVE
。
- 大于零 - 系统会断言
权限
handle 必须同时具有 ZX_RIGHT_READ
和 ZX_RIGHT_WRITE
。由于可以通过检查一系列精心设计的 zx_counter_add()
调用是否存在 ZX_ERR_OUT_OF_RANGE
来确定计数器的值,因此无法创建无法读取但可以添加的计数器。
返回值
zx_counter_add()
在成功时会返回 ZX_OK
。
失败时,系统会返回错误值。
错误
如果 handle 不是计数器句柄,则为 ZX_ERR_WRONG_TYPE
。
如果 handle 没有 ZX_RIGHT_WRITE
,则会引发 ZX_ERR_ACCESS_DENIED
。
如果相加的结果会溢出或欠载,则返回 ZX_ERR_OUT_OF_RANGE
。
另请参阅
zx_object_wait_async()
zx_object_wait_many()
zx_object_wait_one()
zx_counter_create()
zx_counter_read()
zx_counter_write()