| 240 | } |
| 241 | |
| 242 | static void |
| 243 | reap_kill_proc(struct thread *td, struct proc *p2, ksiginfo_t *ksi, |
| 244 | struct procctl_reaper_kill *rk, int *error) |
| 245 | { |
| 246 | int error1; |
| 247 | |
| 248 | PROC_LOCK(p2); |
| 249 | error1 = p_cansignal(td, p2, rk->rk_sig); |
| 250 | if (error1 == 0) { |
| 251 | pksignal(p2, rk->rk_sig, ksi); |
| 252 | rk->rk_killed++; |
| 253 | *error = error1; |
| 254 | } else if (*error == ESRCH) { |
| 255 | rk->rk_fpid = p2->p_pid; |
| 256 | *error = error1; |
| 257 | } |
| 258 | PROC_UNLOCK(p2); |
| 259 | } |
| 260 | |
| 261 | struct reap_kill_tracker { |
| 262 | struct proc *parent; |
no test coverage detected