摘要
创建事件对。
声明
#include <zircon/syscalls.h>
zx_status_t zx_eventpair_create(uint32_t options,
zx_handle_t* out0,
zx_handle_t* out1);
说明
zx_eventpair_create() 会创建一个事件对,即一对对象,
可以相互信号
信号 ZX_EVENTPAIR_SIGNALED 和 ZX_USER_SIGNAL_n(其中 n 为 0 到 7)
可使用 zx_object_signal() 设置或清除,这会修改
或 zx_object_signal_peer(),后者会修改其
副本。
当其中一个对象的所有手柄都关闭后,
系统将对相反对象断言 ZX_EVENTPAIR_PEER_CLOSED 信号。
新创建的标识名将具有 ZX_RIGHT_TRANSFER,
ZX_RIGHT_DUPLICATE、ZX_RIGHT_READ、ZX_RIGHT_WRITE、ZX_RIGHT_SIGNAL、
和ZX_RIGHT_SIGNAL_PEER权利。
目前尚不支持任何选项,因此 options 必须设置为 0。
权限
调用方作业政策必须允许 ZX_POL_NEW_EVENTPAIR。
返回值
如果成功,zx_eventpair_create() 会返回 ZX_OK。如果失败,则 a(否定)
错误代码。
错误
ZX_ERR_INVALID_ARGS out0 或 out0 是无效的指针或 NULL。
ZX_ERR_NOT_SUPPORTED options 具有不受支持的标志集(即 不是 0)。
ZX_ERR_NO_MEMORY 因内存不足而失败。
用户空间没有好办法处理这种(不太可能)错误。
在将来的版本中,此错误不会再发生。