| 1129 | } |
| 1130 | |
| 1131 | static void cbm_posix_force_tree(cbm_subprocess_t *process, uint64_t now) { |
| 1132 | if (process->force_sent) { |
| 1133 | return; |
| 1134 | } |
| 1135 | if (process->force_started_ms == 0) { |
| 1136 | process->force_started_ms = now; |
| 1137 | } |
| 1138 | if (kill(-process->pgid, SIGKILL) == 0) { |
| 1139 | process->result.forced = true; |
| 1140 | process->force_sent = true; |
| 1141 | } else if (errno == ESRCH) { |
| 1142 | process->force_sent = true; |
| 1143 | } else { |
| 1144 | process->containment_failed = true; |
| 1145 | } |
| 1146 | } |
| 1147 | |
| 1148 | static void cbm_posix_capture_root(cbm_subprocess_t *process, int status) { |
| 1149 | process->root_reaped = true; |
no outgoing calls
no test coverage detected