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 handle 是无效句柄。

ZX_ERR_WRONG_TYPE handle 不是中断对象。

ZX_ERR_NOT_FOUND handle 已绑定(现在已不再绑定),但未被等待。

ZX_ERR_ACCESS_DENIED handle 缺少 ZX_RIGHT_WRITE

另请参阅