zxport_cancel

总结

取消对象的异步端口通知。

声明

#include <zircon/syscalls.h>

zx_status_t zx_port_cancel(zx_handle_t handle,
                           zx_handle_t source,
                           uint64_t key);

说明

zx_port_cancel() 是一个非阻塞系统调用,用于取消使用进行的所有待处理的 zx_object_wait_async() 操作。

此调用成功后,系统不会将来自具有 keysource 所指向对象的新数据包传送到 handle,并且与 sourcekey 匹配且已加入队列的待处理数据包会从端口中移除。

权限

handle 必须为 ZX_OBJ_TYPE_PORT 类型,且具有 ZX_RIGHT_WRITE

返回值

如果取消成功,并且已加入队列的数据包已移除或待处理的 zx_object_wait_async() 已取消,则 zx_port_cancel() 会返回 ZX_OK

错误

ZX_ERR_BAD_HANDLE sourcehandle 不是有效的句柄。

ZX_ERR_WRONG_TYPE 句柄不是端口句柄。

ZX_ERR_ACCESS_DENIED sourcehandle 没有 ZX_RIGHT_WRITE

ZX_ERR_NOT_SUPPORTED source 是无法等待的句柄。

如果未找到待处理的数据包,或者找到了带有来源密钥的待处理 zx_object_wait_async() 调用,则为 ZX_ERR_NOT_FOUND

另请参阅