摘要
设置对作业至关重要的流程。
声明
#include <zircon/syscalls.h>
zx_status_t zx_job_set_critical(zx_handle_t job,
uint32_t options,
zx_handle_t process);
说明
将 process 设置为对 job 至关重要。当 process 终止时,job 将会
会终止,就像对其调用了 zx_task_kill()
一样。所用的返回代码将
为 ZX_TASK_RETCODE_CRITICAL_PROCESS_KILL
。
指定的 job 必须是 process 的父级或祖先。
如果 options 为 ZX_JOB_CRITICAL_PROCESS_RETCODE_NONZERO
,job 将
只有在 process 具有非零返回代码时才会终止。
权限
job 必须具有 ZX_RIGHT_DESTROY
。
process 必须具有 ZX_RIGHT_WAIT
。
返回值
如果成功,zx_job_set_critical()
会返回 ZX_OK
。如果失败,
返回负数。
错误
ZX_ERR_BAD_HANDLE
job 或 process 不是有效的句柄。
ZX_ERR_WRONG_TYPE
job 或 process 不是作业句柄。
ZX_ERR_INVALID_ARGS
options 不为 0 或
ZX_JOB_CRITICAL_PROCESS_RETCODE_NONZERO
或 job 不是以下对象的父级:
process 或祖先实体。
ZX_ERR_ALREADY_BOUND
process 已设置为对作业至关重要。
ZX_ERR_ACCESS_DENIED
作业没有 ZX_RIGHT_DESTROY
或进程
不包含 ZX_RIGHT_WAIT
。