此函数取代了 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()
将成功终止
任务。
正在恢复
允许任务继续运行,关闭挂起令牌句柄。任务将
只要存在开放的挂起令牌,就会一直处于暂停状态。就像暂停一样
恢复操作是异步进行的,因此在调用
即使没有其他挂起令牌,zx_handle_close()
调用也会返回
处于打开状态。
权限
handle 的类型必须为 ZX_OBJ_TYPE_THREAD
或 ZX_OBJ_TYPE_PROCESS
,并且具有 ZX_RIGHT_WRITE
。
返回值
zx_task_suspend()
会在成功时返回 ZX_OK
。
如果失败,则返回负的错误值。
错误
ZX_ERR_BAD_HANDLE
handle 不是有效的句柄。
ZX_ERR_WRONG_TYPE
handle 不是线程句柄。
“ZX_ERR_INVALID_ARGS
”令牌是无效的指针。
ZX_ERR_BAD_STATE
:任务未处于可以挂起的状态。
限制
目前仅支持线程句柄。