Index: trunk/Ohana/src/opihi/pcontrol/CheckSystem.c
===================================================================
--- trunk/Ohana/src/opihi/pcontrol/CheckSystem.c	(revision 11898)
+++ trunk/Ohana/src/opihi/pcontrol/CheckSystem.c	(revision 16589)
@@ -59,5 +59,5 @@
 void *CheckSystem_Threaded (void *data) {
 
-  int Njobchecks, Nhostchecks, Nlivechecks;
+  int Njobchecks, Nhostchecks, Nlivechecks, Ndonejobs;
 
   Nlivechecks = 0;
@@ -86,9 +86,11 @@
     Njobchecks = 0;
     Nhostchecks = 0;
+    Ndonejobs = 0;
 
     if ((RunLevel == PCONTROL_RUN_ALL) || (RunLevel == PCONTROL_RUN_REAP)) {
       Njobchecks  += CheckBusyJobs(0.020);  /* get job status (PCLIENT) */
       TestCheckPoint ();
-      Njobchecks  += CheckDoneJobs(0.020);  /* harvest job stdout/stderr (!PCLIENT) */
+      Ndonejobs    = CheckDoneJobs(0.020);  /* harvest job stdout/stderr (!PCLIENT) */
+      Njobchecks  += Ndonejobs;
       TestCheckPoint ();
       Njobchecks  += CheckKillJobs(0.020);  /* harvest job stdout/stderr (PCLIENT) */
@@ -113,6 +115,11 @@
       CheckLiveHosts(0.040);
       usleep (100000); // idle if no jobs are waiting
-    } 
-    
+    } else {
+      // if we only have busy jobs, pause a moment before trying again
+      if (!Ndonejobs) {
+	usleep (100000);
+      }
+    }
+
     if (DEBUG) { 
       Stack *stack;
