| 1274 | } |
| 1275 | |
| 1276 | static void cbm_posix_force_tree(cbm_subprocess_t *process, uint64_t now) { |
| 1277 | if (process->force_sent) { |
| 1278 | return; |
| 1279 | } |
| 1280 | if (process->force_started_ms == 0) { |
| 1281 | process->force_started_ms = now; |
| 1282 | } |
| 1283 | if (kill(-process->pgid, SIGKILL) == 0) { |
| 1284 | process->result.forced = true; |
| 1285 | process->force_sent = true; |
| 1286 | } else if (errno == ESRCH) { |
| 1287 | process->force_sent = true; |
| 1288 | } else { |
| 1289 | process->containment_failed = true; |
| 1290 | } |
| 1291 | } |
| 1292 | |
| 1293 | static void cbm_posix_capture_root(cbm_subprocess_t *process, int status) { |
| 1294 | process->root_reaped = true; |
no outgoing calls
no test coverage detected