Index: trunk/Ohana/src/opihi/pcontrol/GetJobOutput.c
===================================================================
--- trunk/Ohana/src/opihi/pcontrol/GetJobOutput.c	(revision 4705)
+++ trunk/Ohana/src/opihi/pcontrol/GetJobOutput.c	(revision 4762)
@@ -1,4 +1,4 @@
 # include "pcontrol.h"
-# define PCLIENT_TIMEOUT 20
+# define PCLIENT_TIMEOUT 500
 
 /* we read Nbytes from the host, then watch for the prompt */ 
@@ -7,4 +7,5 @@
   int i, status, Nstart;
   char *line;
+  struct timespec request, remain;
 
   /* flush any earlier messages */
@@ -12,4 +13,8 @@
   FlushIOBuffer (buffer);
   Nstart = buffer[0].Nbuffer;
+
+  /* avoid blocking on waitpid, test every 100 usec, up to 50 msec */
+  request.tv_sec = 0;
+  request.tv_nsec = 100000;
 
   /* send cmd (stdout / stderr) */
@@ -27,5 +32,5 @@
       line = memstr (buffer[0].buffer, PCLIENT_PROMPT, buffer[0].Nbuffer);
     }
-    if (status == -1) usleep (10000);
+    if (status == -1) nanosleep (&request, &remain);
   }
   if (status ==  0) return (PCLIENT_DOWN);
