port_cancel —— 取消对象上的异步端口通知
#include <zircon/syscalls.h>
zx_status_t zx_port_cancel(zx_handle_t port,
zx_handle_t source,
uint64_t key);
port_cancel() 是一个非阻塞的系统调用,它用source和key取消待处理的object_wait_async() 调用。
当此调用成功时,由source对象发出且键值为key的新数据包将不再传递到port,并且与source和key匹配的待处理数据包也从端口中被删除。
TODO(ZX-2399)
zx_port_cancel() 如果取消成功,并删除排队中的数据包,或待处理的object_wait_async() 调用被取消,则返回ZX_OK。
ZX_ERR_BAD_HANDLE:source或port是无效句柄。
ZX_ERR_WRONG_TYPE:port不是端口类型句柄。
ZX_ERR_ACCESS_DENIED:source或port没有ZX_RIGHT_WRITE权限。
ZX_ERR_NOT_SUPPORTED:source是一个不可等待的句柄。
ZX_ERR_NOT_FOUND:找不到待处理的数据包和待处理的以source和key为参数的object_wait_async调用。