摘要
退出受限模式的討論串。
宣告
#include <zircon/syscalls-next.h>
zx_status_t zx_restricted_kick(zx_handle_t thread, uint32_t options);
說明
如果執行緒目前在受限模式下執行,請將其從受限模式中移除;如果執行緒尚未執行,則儲存待處理啟動。如果目標執行緒以受限模式執行,就會透過提供給 zx_restricted_enter
的進入點結束一般模式,並將原因代碼設為 ZX_RESTRICTED_REASON_KICK
。否則,下次對 zx_restricted_enter
呼叫時將不會進入受限模式,而是會分派給提供的進入點,並提供原因代碼 ZX_RESTRICTED_REASON_KICK
。
同一個執行緒物件上的多個啟動動作會收合在一起。因此,如果多個執行緒在執行或進入受限模式時,對相同目標呼叫 zx_restricted_kick
,則至少會觀察到一個,但可能有多個 ZX_RESTRICTED_REASON_KICK
回傳。如要使用這項系統呼叫,建議您先記錄啟用同步資料結構的原因,然後呼叫 zx_restricted_kick
。呼叫 zx_restricted_enter
的執行緒在觀察 ZX_RESTRICTED_REASON_KICK
並處理任何待處理狀態後,才會重新進入受限模式,應參照此資料結構。
options 必須為零。
權限
執行緒需要 ZX_RIGHT_MANAGE_THREAD
。
錯誤
ZX_ERR_INVALID_ARGS
options 為 0 以外的任何值。ZX_ERR_WRONG_TYPE
執行緒並不是執行緒。ZX_ERR_ACCESS_DENIED
執行緒沒有 ZX_RIGHT_MANAGE_THREAD。
ZX_ERR_BAD_STATE
執行緒已失效。