client: Make sure handle_temporary_exit() cleans up any descendents and any other processes of interest determined by other_pid.

This commit is contained in:
Rom Walton 2014-07-19 19:04:06 -04:00
parent 98f4c461d0
commit d1db358a56
1 changed files with 10 additions and 0 deletions

View File

@ -362,6 +362,11 @@ void ACTIVE_TASK::handle_temporary_exit(
premature_exit_count++;
if (premature_exit_count > 100) {
will_restart = false;
// Cleanup any descendents and proccess designated as other_pids of interest
// which may not have been cleaned up
kill_task(will_restart);
set_task_state(PROCESS_ABORTED, "handle_temporary_exit");
result->exit_status = ERR_TOO_MANY_EXITS;
gstate.report_result_error(*result, "too many boinc_temporary_exit()s");
@ -381,6 +386,11 @@ void ACTIVE_TASK::handle_temporary_exit(
will_restart = true;
result->schedule_backoff = gstate.now + backoff;
safe_strcpy(result->schedule_backoff_reason, reason);
// Cleanup any descendents and proccess designated as other_pids of interest
// which may not have been cleaned up
kill_task(will_restart);
set_task_state(PROCESS_UNINITIALIZED, "handle_temporary_exit");
}
}