zx_task_suspend_token

這個函式會取代 task_suspend。更新所有呼叫端後,系統會刪除 zx_task_suspend(),並將這個函式重新命名為 zx_task_suspend()

摘要

暫停指定工作。目前只能暫停執行緒或程序控制代碼。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_task_suspend_token(zx_handle_t handle, zx_handle_t* token);

說明

zx_task_suspend_token() 會導致要求的工作暫停執行。工作暫停並非同步作業,因此呼叫傳回前,工作可能不會暫停。除非目前在核心中遭到封鎖,否則工作會在呼叫 zx_task_suspend_token() 後不久暫停,如果遭到封鎖,則會在解除封鎖後暫停。

在暫停的任務上叫用 zx_task_kill() 會成功終止任務。

RESUMING

如要允許工作繼續執行,請關閉暫停權杖控制代碼。只要有任何未使用的暫停權杖,工作就會維持暫停狀態。與暫停一樣,繼續作業是非同步的,因此即使沒有其他暫停權杖處於開啟狀態,當 zx_handle_close() 呼叫傳回時,執行緒可能不會處於執行狀態。

權限

handle 必須是 ZX_OBJ_TYPE_THREADZX_OBJ_TYPE_PROCESS 類型,且具有 ZX_RIGHT_WRITE

傳回值

zx_task_suspend() 會在成功時傳回 ZX_OK。 如果失敗,系統會傳回負數錯誤值。

錯誤

ZX_ERR_BAD_HANDLEhandle 不是有效的控制代碼。

ZX_ERR_WRONG_TYPE handle 不是執行緒控制代碼。

ZX_ERR_INVALID_ARGS token 是無效指標。

ZX_ERR_BAD_STATE 工作目前無法暫停。

限制

目前僅支援執行緒控制代碼。