Changeset 4762 for trunk/Ohana/src/opihi/pantasks/ControllerOps.c
- Timestamp:
- Aug 13, 2005, 10:30:13 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/pantasks/ControllerOps.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/pantasks/ControllerOps.c
r4714 r4762 1 1 # include "psched.h" 2 2 /* adding a new host can delay controller up to a second or so */ 3 # define CONTROLLER_TIMEOUT 2003 # define CONTROLLER_TIMEOUT 500 4 4 # define CONNECT_TIMEOUT 300 5 5 … … 18 18 /* check job / get output if done */ 19 19 int CheckControllerJob (Job *job) { 20 20 struct timeval start, stop; 21 float dtime; 22 23 gettimeofday (&start, (void *) NULL); 21 24 CheckControllerJobStatus (job); 25 gettimeofday (&stop, (void *) NULL); 26 dtime = DTIME (stop, start); 27 if (VerboseMode()) fprintf (stderr, "check job status %f\n", dtime); 22 28 23 29 if ((job[0].state == JOB_EXIT) || (job[0].state == JOB_CRASH)) { 30 gettimeofday (&start, (void *) NULL); 24 31 GetJobOutput ("stdout", job[0].pid, &job[0].stdout, job[0].stdout_size); 32 gettimeofday (&stop, (void *) NULL); 33 dtime = DTIME (stop, start); 34 if (VerboseMode()) fprintf (stderr, "get stdout %f\n", dtime); 35 25 36 GetJobOutput ("stderr", job[0].pid, &job[0].stderr, job[0].stderr_size); 26 37 DeleteControllerJob (job); … … 97 108 int i, status, Nstart; 98 109 char *line; 110 struct timespec request, remain; 111 112 /* avoid blocking on waitpid, test every 100 usec, up to 50 msec */ 113 request.tv_sec = 0; 114 request.tv_nsec = 100000; 99 115 100 116 /* flush any earlier messages */ … … 117 133 line = memstr (buffer[0].buffer, CONTROLLER_PROMPT, buffer[0].Nbuffer); 118 134 } 119 if (status == -1) usleep (10000);135 if (status == -1) nanosleep (&request, &remain); 120 136 } 121 137 if (status == 0) return (CONTROLLER_DOWN); … … 256 272 257 273 /* try to get evidence connection is alive - wait upto a few seconds */ 274 /* connection is likely slow; don't bother with nanosleep here */ 258 275 p = NULL; 259 276 status = -1; … … 300 317 int ControllerCommand (char *cmd, char *response, IOBuffer *buffer) { 301 318 302 int i; 303 int status; 319 int i, status; 304 320 char *line; 321 struct timespec request, remain; 322 323 /* avoid blocking on waitpid, test every 100 usec, up to 50 msec */ 324 request.tv_sec = 0; 325 request.tv_nsec = 100000; 305 326 306 327 ReadtoIOBuffer (buffer, stdout_cntl); … … 323 344 status = ReadtoIOBuffer (buffer, stdout_cntl); 324 345 line = memstr (buffer[0].buffer, response, buffer[0].Nbuffer); 325 if (status == -1) usleep (10000);346 if (status == -1) nanosleep (&request, &remain); 326 347 } 327 348 if (status == 0) { … … 341 362 bzero (buffer[0].buffer + buffer[0].Nbuffer, buffer[0].Nalloc - buffer[0].Nbuffer); 342 363 } 343 if (VerboseMode()) fprintf (stderr, "message received \n");364 if (VerboseMode()) fprintf (stderr, "message received, %d cycles\n", i); 344 365 return (TRUE); 345 366 }
Note:
See TracChangeset
for help on using the changeset viewer.
