Index: trunk/Ohana/src/opihi/pantasks/CheckController.c
===================================================================
--- trunk/Ohana/src/opihi/pantasks/CheckController.c	(revision 4714)
+++ trunk/Ohana/src/opihi/pantasks/CheckController.c	(revision 4762)
@@ -3,8 +3,12 @@
 int CheckController () {
 
+  float dtime;
+  struct timeval start, stop;
   char *p, *q;
   int i, Njobs, status, JobID;
   Job *job;
   IOBuffer buffer;
+
+  gettimeofday (&start, (void *) NULL);
 
   /* get the list of completed jobs (exit / crash), update the job status */
@@ -32,6 +36,11 @@
   }
 
+  gettimeofday (&stop, (void *) NULL);
+  dtime = DTIME (stop, start);
+  if (VerboseMode()) fprintf (stderr, "check stack %f\n", dtime);
+  gettimeofday (&start, (void *) NULL);
+
   p = buffer.buffer;
-  for (i = 0; i < Njobs; i++) {
+  for (i = 0; (i < Njobs) && !TestElapsedCheck(); i++) {
     q = strchr (p, '\n');
     if (q == NULL) {
@@ -50,5 +59,10 @@
     CheckControllerJob (job);
   }
- 
+  gettimeofday (&stop, (void *) NULL);
+  dtime = DTIME (stop, start);
+  if (VerboseMode()) fprintf (stderr, "check %d jobs %f\n", i, dtime);
+
+  if (TestElapsedCheck()) return (TRUE);
+
   /*** check CRASH jobs ***/
   FlushIOBuffer (&buffer);
@@ -72,5 +86,5 @@
 
   p = buffer.buffer;
-  for (i = 0; i < Njobs; i++) {
+  for (i = 0; (i < Njobs) && !TestElapsedCheck(); i++) {
     q = strchr (p, '\n');
     if (q == NULL) {
