Summary
Set a process as critical to a job.
Declaration
#include <zircon/syscalls.h>
zx_status_t zx_job_set_critical(zx_handle_t job,
uint32_t options,
zx_handle_t process);
Description
Sets process as critical to job. When process terminates, job will be
terminated as if zx_task_kill()
was called on it. The return code used will
be ZX_TASK_RETCODE_CRITICAL_PROCESS_KILL
.
The job specified must be the parent of process, or an ancestor.
If options is ZX_JOB_CRITICAL_PROCESS_RETCODE_NONZERO
, then job will
only be terminated if process has a non-zero return code.
Rights
job must have ZX_RIGHT_DESTROY
.
process must have ZX_RIGHT_WAIT
.
Return value
zx_job_set_critical()
returns ZX_OK
on success. In the event of failure, a
negative error value is returned.
Errors
ZX_ERR_BAD_HANDLE
job or process is not a valid handle.
ZX_ERR_WRONG_TYPE
job or process is not a job handle.
ZX_ERR_INVALID_ARGS
options is not 0 or
ZX_JOB_CRITICAL_PROCESS_RETCODE_NONZERO
, or job is not the parent of
process, or an ancestor.
ZX_ERR_ALREADY_BOUND
process has already been set as critical to a job.
ZX_ERR_ACCESS_DENIED
job does not have ZX_RIGHT_DESTROY
or process
does not have ZX_RIGHT_WAIT
.