Index: /branches/eam_branches/ipp-20110505/Ohana/src/opihi/include/pantasks.h
===================================================================
--- /branches/eam_branches/ipp-20110505/Ohana/src/opihi/include/pantasks.h	(revision 31591)
+++ /branches/eam_branches/ipp-20110505/Ohana/src/opihi/include/pantasks.h	(revision 31592)
@@ -108,4 +108,5 @@
   int Nfailure;
   int Ntimeout;
+  int Nskipexec;
 
   double dtimeAve_alljobs, dtimeMin_alljobs, dtimeMax_alljobs;
@@ -216,4 +217,5 @@
 int DeleteJob (Job *job);
 void FreeJob (Job *job);
+char *JobStateToString (JobStat state);
 
 float CheckJobs (void);
Index: /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/CheckTasks.c
===================================================================
--- /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/CheckTasks.c	(revision 31591)
+++ /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/CheckTasks.c	(revision 31592)
@@ -61,4 +61,5 @@
       JobTaskLock();
       if (!status) {
+	task[0].Nskipexec ++;
 	continue;
       }
Index: /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/JobOps.c
===================================================================
--- /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/JobOps.c	(revision 31591)
+++ /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/JobOps.c	(revision 31592)
@@ -82,5 +82,5 @@
   gprint (GP_LOG, " Jobs in Pantasks Queue\n");
   for (i = 0; i < Njobs; i++) {
-    gprint (GP_LOG, " %d: %-15s %5d %20s (%lx)\n", Njobs, jobs[i][0].task[0].name, jobs[i][0].JobID, jobs[i][0].argv[0], (long) jobs[i][0].argv);
+    gprint (GP_LOG, " %4d  %6d: %-25s %10s %20s\n", Njobs, jobs[i][0].JobID, jobs[i][0].task[0].name, JobStateToString(jobs[i][0].state), jobs[i][0].argv[0]);
   }
 
@@ -280,2 +280,31 @@
   return (job[0].state);
 }
+
+static char *JobStateNone    = "NONE";
+static char *JobStateBusy    = "BUSY";
+static char *JobStateExit    = "EXIT";
+static char *JobStateHung    = "HUNG";
+static char *JobStateCrash   = "CRASH";
+static char *JobStatePending = "PENDING";
+
+char *JobStateToString (JobStat state) {
+
+  switch (state) {
+    case JOB_NONE:
+      return JobStateNone;
+    case JOB_BUSY:
+      return JobStateBusy;
+    case JOB_EXIT:
+      return JobStateExit;
+    case JOB_HUNG:
+      return JobStateHung;
+    case JOB_CRASH:
+      return JobStateCrash;
+    case JOB_PENDING:
+      return JobStatePending;
+    default:
+      return JobStateNone;
+  }      
+  return JobStateNone;
+}
+
Index: /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/TaskOps.c
===================================================================
--- /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/TaskOps.c	(revision 31591)
+++ /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/TaskOps.c	(revision 31592)
@@ -151,4 +151,5 @@
 	free (stop);
       }
+      gprint (GP_LOG, "     Nskip exec: %d\n", tasks[i][0].Nskipexec);
       if (tasks[i][0].host == NULL) {
 	gprint (GP_LOG, "    task runs locally\n");
Index: /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/status_server.c
===================================================================
--- /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/status_server.c	(revision 31591)
+++ /branches/eam_branches/ipp-20110505/Ohana/src/opihi/pantasks/status_server.c	(revision 31592)
@@ -1,3 +1,5 @@
 # include "pantasks.h"
+// this is the server version of the status_sys function (status.c)
+// the server verion needs to include locks on the jobs.
 
 int status_scheduler(void);
