diff --git a/src/srun/io.c b/src/srun/io.c index 384d561d60c98bc93b62a1ec258e515eaa4ce724..d4d206a8dc8dc362f36076bfb66766c253989d94 100644 --- a/src/srun/io.c +++ b/src/srun/io.c @@ -293,11 +293,26 @@ static char *_host_state_name(host_state_t state_inx) void report_task_status(job_t *job) { - int i; + int i, j; + int first_task, last_task; + task_state_t current_state; for (i = 0; i < opt.nprocs; i++) { - info ("task:%d state:%s", i, - _task_state_name(job->task_state[i])); + current_state = job->task_state[i]; + first_task = last_task = i; + for (j = (i+1); j < opt.nprocs; j++) { + if (current_state == job->task_state[i]) + last_task = j; + else + break; + } + if (first_task == last_task) + info ("task:%d state:%s", first_task, + _task_state_name(current_state)); + else + info ("tasks:%d-%d state:%s", first_task, last_task, + _task_state_name(current_state)); + i = last_task; } } diff --git a/src/srun/srun.c b/src/srun/srun.c index 736e60ca5ec395fb1894886b35b82c7905f4df14..bc7e016d87fa9080e4326460d2960fad119db7e4 100644 --- a/src/srun/srun.c +++ b/src/srun/srun.c @@ -517,6 +517,7 @@ _sig_thr(void *arg) switch (signo) { case SIGINT: if ((time(NULL) - last_intr) > 1) { + info("interrupt (one more within 1 sec to abort)"); report_task_status(job); last_intr = time(NULL); } else { /* second Ctrl-C in half as many seconds */