zx_eventpair_create

总结

创建事件对。

声明

#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_object_signal() 设置或清除信号 ZX_EVENTPAIR_SIGNALEDZX_USER_SIGNAL_n(其中 n 为 0 到 7),前者会修改对象本身的信号,而 zx_object_signal_peer() 则会修改对应的信号。

当其中一个对象的所有手柄都已关闭时,将在另一个对象上断言 ZX_EVENTPAIR_PEER_CLOSED 信号。

新创建的句柄将拥有 ZX_RIGHT_TRANSFERZX_RIGHT_DUPLICATEZX_RIGHT_READZX_RIGHT_WRITEZX_RIGHT_SIGNALZX_RIGHT_SIGNAL_PEER 权限。

目前不支持任何选项,因此 options 必须设置为 0。

权限

调用方作业政策必须允许 ZX_POL_NEW_EVENTPAIR

返回值

zx_eventpair_create() 会在成功时返回 ZX_OK。如果失败,则会返回(负)错误代码。

错误

ZX_ERR_INVALID_ARGS out0out0 是无效的指针或 NULL。

ZX_ERR_NOT_SUPPORTED 选项设置了不受支持的标志(即,非 0)。

ZX_ERR_NO_MEMORY 由于内存不足而失败。 用户空间没有什么方法来处理此(不太可能)错误。在以后的 build 中,此错误不会再发生。

另请参阅