From 6f8fc6c7d7eddb3d3b79b350e0c20fdd53aaf6f7 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 26 Nov 2002 17:14:28 +0000
Subject: [PATCH] Report on first <ctrl-c> that second one require to forward
 signal. Combine line task states on a single line, not one per task.

---
 src/srun/io.c   | 21 ++++++++++++++++++---
 src/srun/srun.c |  1 +
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/srun/io.c b/src/srun/io.c
index 384d561d60c..d4d206a8dc8 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 736e60ca5ec..bc7e016d87f 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 */
-- 
GitLab