摘要
设置对作业至关重要的流程。
声明
#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。