Index: trunk/Ohana/src/opihi/pcontrol/pclient.c
===================================================================
--- trunk/Ohana/src/opihi/pcontrol/pclient.c	(revision 4705)
+++ trunk/Ohana/src/opihi/pcontrol/pclient.c	(revision 4762)
@@ -1,4 +1,4 @@
 # include "pcontrol.h"
-# define PCLIENT_TIMEOUT 20
+# define PCLIENT_TIMEOUT 500
 
 int PclientCommand (Host *host, char *command, char *response, IOBuffer *buffer) {
@@ -7,4 +7,9 @@
   int status;
   char *line;
+  struct timespec request, remain;
+
+  /* avoid blocking on read, test every 100 usec, up to 50 msec */
+  request.tv_sec = 0;
+  request.tv_nsec = 100000;
 
   ReadtoIOBuffer (buffer, host[0].stdout);
@@ -23,5 +28,5 @@
     status = ReadtoIOBuffer (buffer, host[0].stdout);
     line = memstr (buffer[0].buffer, response, buffer[0].Nbuffer);
-    if (status == -1) usleep (10000);
+    if (status == -1) nanosleep (&request, &remain);
   }
   if (status ==  0) return (PCLIENT_DOWN);
