Index: trunk/Ohana/src/opihi/pcontrol/check.c
===================================================================
--- trunk/Ohana/src/opihi/pcontrol/check.c	(revision 7917)
+++ trunk/Ohana/src/opihi/pcontrol/check.c	(revision 8296)
@@ -1,6 +1,6 @@
 # include "pcontrol.h"
 
-char jobstate[6][32] = {"PENDING", "BUSY", "EXIT", "CRASH", "HUNG", "DONE"};
-char hoststate[5][32] = {"IDLE", "BUSY", "DOWN", "DONE", "OFF"};
+char jobstate[7][32]  = {"PENDING", "BUSY", "HUNG", "DONE", "KILL", "EXIT", "CRASH"};
+char hoststate[5][32] = {"IDLE",    "BUSY", "DOWN", "DONE", "OFF"};
 
 int check (int argc, char **argv) {
@@ -8,5 +8,5 @@
   Job *job;
   Host *host;
-  int JobID, HostID;
+  int JobID, HostID, StackID;
 
   if (argc != 3) {
@@ -18,13 +18,14 @@
   if (!strcasecmp (argv[1], "JOB")) {
     JobID = atoi (argv[2]);
-    job = FindJobStack (JobID);
+    job = PullJobByID (JobID, &StackID);
     if (job == NULL) {
       gprint (GP_LOG, "job not found\n");
       return (FALSE);
     }
-    gprint (GP_LOG, "STATUS %s\n", jobstate[job[0].stack]);
+    gprint (GP_LOG, "STATUS %s\n", jobstate[StackID]);
     gprint (GP_LOG, "EXITST %d\n", job[0].exit_status);
     gprint (GP_LOG, "STDOUT %d\n", job[0].stdout_size);
     gprint (GP_LOG, "STDERR %d\n", job[0].stderr_size);
+    PutJob (job, StackID, STACK_BOTTOM);
     return (TRUE);
   }
@@ -32,10 +33,11 @@
   if (!strcasecmp (argv[1], "HOST")) {
     HostID = atoi (argv[2]);
-    host = FindHostStack (HostID);
+    host = PullHostByID (HostID, &StackID);
     if (host == NULL) {
       gprint (GP_LOG, "host not found\n");
       return (FALSE);
     }
-    gprint (GP_LOG, "host %s\n", hoststate[host[0].stack]);
+    gprint (GP_LOG, "host %s\n", hoststate[StackID]);
+    PutHost (host, StackID, STACK_BOTTOM);
     return (TRUE);
   }
@@ -44,2 +46,4 @@
   return (FALSE);
 }
+
+XXX how do I handle objects which are in flight??
