Changeset 4450 for trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c
- Timestamp:
- Jul 4, 2005, 5:35:47 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c
r3212 r4450 5 5 int i; 6 6 int status; 7 int outstate; 7 8 char *p; 8 9 char string[64]; … … 11 12 12 13 /** must have a valid host : if not? **/ 13 host = job[0].host; 14 /*** why is this a type error? ***/ 14 host = (Host *) job[0].host; 15 15 16 16 InitIOBuffer (&buffer, 0x100); … … 34 34 35 35 case PCLIENT_GOOD: 36 fprintf (stderr, "message received (CheckBusyJob)\n");36 /* fprintf (stderr, "message received (CheckBusyJob)\n"); */ 37 37 break; 38 38 … … 60 60 } 61 61 62 /** job has exited : move to DONE stack (host still BUSY) **/ 63 if (!strcmp(string, "EXIT")) { 64 p = memstr (buffer.buffer, "EXITST", buffer.Nbuffer); 65 sscanf (p, "%*s %d", &job[0].exit_status); 66 PutJob (job, PCONTROL_JOB_DONE, STACK_BOTTOM); 67 job[0].state = PCONTROL_JOB_EXIT; 68 FreeIOBuffer (&buffer); 69 return (TRUE); 70 } 71 /** job has crashed : move to DONE stack (host still BUSY) */ 72 if (!strcmp(string, "CRASH")) { 73 p = memstr (buffer.buffer, "EXITST", buffer.Nbuffer); 74 sscanf (p, "%*s %d", &job[0].exit_status); 75 PutJob (job, PCONTROL_JOB_DONE, STACK_BOTTOM); 76 job[0].state = PCONTROL_JOB_CRASH; 77 FreeIOBuffer (&buffer); 78 return (TRUE); 62 /* exit status better be either EXIT or CRASH */ 63 outstate = PCONTROL_JOB_BUSY; 64 if (!strcmp(string, "EXIT")) outstate = PCONTROL_JOB_EXIT; 65 if (!strcmp(string, "CRASH")) outstate = PCONTROL_JOB_CRASH; 66 if (outstate == PCONTROL_JOB_BUSY) { 67 fprintf (stderr, "programming error : should not reach here (CheckJob)\n"); 68 exit (1); 79 69 } 80 70 81 fprintf (stderr, "programming error : should not reach here (CheckJob)\n"); 82 exit (1); 71 /* parse the exit status and sizes of output buffers */ 72 p = memstr (buffer.buffer, "EXITST", buffer.Nbuffer); 73 sscanf (p, "%*s %d", &job[0].exit_status); 74 p = memstr (buffer.buffer, "STDOUT", buffer.Nbuffer); 75 sscanf (p, "%*s %d", &job[0].stdout_size); 76 p = memstr (buffer.buffer, "STDERR", buffer.Nbuffer); 77 sscanf (p, "%*s %d", &job[0].stderr_size); 78 79 /** job has exited : move to DONE stack (host still BUSY) **/ 80 PutJob (job, PCONTROL_JOB_DONE, STACK_BOTTOM); 81 job[0].state = outstate; 82 FreeIOBuffer (&buffer); 83 return (TRUE); 83 84 } 84 85
Note:
See TracChangeset
for help on using the changeset viewer.
