version 1.141, 2019/12/21 15:28:17 |
version 1.142, 2019/12/25 20:42:04 |
|
|
|
|
static void handle_fatal_signal(int); |
static void handle_fatal_signal(int); |
static void handle_siginfo(void); |
static void handle_siginfo(void); |
static void postprocess_job(Job *, bool); |
static void postprocess_job(Job *); |
static Job *prepare_job(GNode *); |
static Job *prepare_job(GNode *); |
static void determine_job_next_step(Job *); |
static void determine_job_next_step(Job *); |
static void remove_job(Job *, bool); |
static void remove_job(Job *); |
static void may_continue_job(Job *); |
static void may_continue_job(Job *); |
static void continue_job(Job *); |
static void continue_job(Job *); |
static Job *reap_finished_job(pid_t); |
static Job *reap_finished_job(pid_t); |
|
|
/*ARGSUSED*/ |
/*ARGSUSED*/ |
|
|
static void |
static void |
postprocess_job(Job *job, bool okay) |
postprocess_job(Job *job) |
{ |
{ |
if (okay && |
if (job->exit_type == JOB_EXIT_OKAY && |
aborting != ABORT_ERROR && |
aborting != ABORT_ERROR && |
aborting != ABORT_INTERRUPT) { |
aborting != ABORT_INTERRUPT) { |
/* As long as we aren't aborting and the job didn't return a |
/* As long as we aren't aborting and the job didn't return a |
|
|
{ |
{ |
bool finished = job_run_next(job); |
bool finished = job_run_next(job); |
if (finished) |
if (finished) |
remove_job(job, true); |
remove_job(job); |
else |
else |
determine_expensive_job(job); |
determine_expensive_job(job); |
} |
} |
|
|
job->node->name); |
job->node->name); |
} |
} |
|
|
okay = job->exit_type == JOB_EXIT_OKAY; |
if (job->exit_type != JOB_EXIT_OKAY || job->next_cmd == NULL) |
if (!okay || job->next_cmd == NULL) |
remove_job(job); |
remove_job(job, okay); |
|
else |
else |
may_continue_job(job); |
may_continue_job(job); |
} |
} |
|
|
static void |
static void |
remove_job(Job *job, bool okay) |
remove_job(Job *job) |
{ |
{ |
nJobs--; |
nJobs--; |
postprocess_job(job, okay); |
postprocess_job(job); |
while (!no_new_jobs) { |
while (!no_new_jobs) { |
if (heldJobs != NULL) { |
if (heldJobs != NULL) { |
job = heldJobs; |
job = heldJobs; |