Zx_中断中断

摘要

销毁一个中断对象。

声明

#include <zircon/syscalls.h>

zx_status_t zx_interrupt_destroy(zx_handle_t handle);

说明

zx_interrupt_destroy() 会“销毁”中断对象,使其处于对它的任何 zx_interrupt_wait() 操作都将返回 ZX_ERR_CANCELED 的状态,并且它会与它已绑定到的所有端口解除绑定。

这是一种干净的关闭机制。关闭中断对象的最后一个句柄会导致类似的取消操作,但可能会导致句柄关闭后使用。

如果在取消时中断对象被绑定到某个端口,或者该对象尚未触发,或已触发但 zx_port_wait() 的调用方尚未收到数据包,系统将返回成功,并移除传输中的任何数据包。否则,系统会返回 ZX_ERR_NOT_FOUND,表明数据包已读取,但尚未通过调用 zx_interrupt_ack() 重新报警中断。

权限

TODO(https://fxbug.dev/42107318)

返回值

zx_interrupt_destroy() 会在成功时返回 ZX_OK。如果失败,则返回负的错误值。

错误

ZX_ERR_BAD_HANDLE 句柄是无效的句柄。

ZX_ERR_WRONG_TYPE 处理程序不是中断对象。

ZX_ERR_NOT_FOUND 句柄已绑定(现在不复存在),但未处于等待状态。

ZX_ERR_ACCESS_DENIED 句柄缺少 ZX_RIGHT_WRITE

另请参阅