摘要
刪除中斷物件。
宣告
#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
。
另請參閱
zx_handle_close()
zx_interrupt_ack()
zx_interrupt_bind()
zx_interrupt_create()
zx_interrupt_trigger()
zx_interrupt_wait()
zx_port_wait()