Changeset 4714 for trunk/Ohana/src/opihi/pantasks
- Timestamp:
- Aug 5, 2005, 9:53:49 AM (21 years ago)
- Location:
- trunk/Ohana/src/opihi/pantasks
- Files:
-
- 8 edited
-
CheckController.c (modified) (5 diffs)
-
CheckSystem.c (modified) (1 diff)
-
ControllerOps.c (modified) (3 diffs)
-
JobOps.c (modified) (4 diffs)
-
LocalJob.c (modified) (1 diff)
-
controller_host.c (modified) (1 diff)
-
init.c (modified) (1 diff)
-
psched.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/pantasks/CheckController.c
r4706 r4714 7 7 Job *job; 8 8 IOBuffer buffer; 9 10 9 11 10 /* get the list of completed jobs (exit / crash), update the job status */ 12 13 11 if (!CheckControllerStatus()) return (TRUE); 14 12 … … 21 19 } 22 20 21 p = memstr (buffer.buffer, "USAGE: jobstack", buffer.Nbuffer); 22 if (p != NULL) { 23 FreeIOBuffer (&buffer); 24 return (FALSE); 25 } 26 23 27 /** parse job list **/ 24 sscanf (buffer.buffer, "%*s %s", &Njobs); 28 status = sscanf (buffer.buffer, "%*s %d", &Njobs); 29 if (status != 1) { 30 FreeIOBuffer (&buffer); 31 return (FALSE); 32 } 33 25 34 p = buffer.buffer; 26 27 35 for (i = 0; i < Njobs; i++) { 28 36 q = strchr (p, '\n'); 29 37 if (q == NULL) { 30 38 fprintf (stderr, "controller message error: incomplete job list\n"); 31 FreeIOBuffer (&buffer);32 39 break; 33 40 } 34 p = q++; 35 sscanf (p, "%d", &JobID); 36 job = FindJob (JobID); 41 p = q + 1; 42 status = sscanf (p, "%d", &JobID); 43 44 job = FindControllerJob (JobID); 37 45 if (job == NULL) { 38 fprintf (stderr, "misplaced job? %d not in job list\n");46 fprintf (stderr, "misplaced job? %d not in EXIT job list\n", JobID); 39 47 continue; 40 48 } … … 42 50 CheckControllerJob (job); 43 51 } 44 52 45 53 /*** check CRASH jobs ***/ 46 InitIOBuffer (&buffer, 0x100);54 FlushIOBuffer (&buffer); 47 55 status = ControllerCommand ("jobstack crash", CONTROLLER_PROMPT, &buffer); 48 56 if (!status) { … … 50 58 return (FALSE); 51 59 } 60 p = memstr (buffer.buffer, "USAGE: jobstack", buffer.Nbuffer); 61 if (p != NULL) { 62 FreeIOBuffer (&buffer); 63 return (FALSE); 64 } 52 65 53 66 /** parse job list **/ 54 sscanf (buffer.buffer, "%*s %s", &Njobs); 67 status = sscanf (buffer.buffer, "%*s %d", &Njobs); 68 if (status != 1) { 69 FreeIOBuffer (&buffer); 70 return (FALSE); 71 } 72 55 73 p = buffer.buffer; 56 57 74 for (i = 0; i < Njobs; i++) { 58 75 q = strchr (p, '\n'); 59 76 if (q == NULL) { 60 77 fprintf (stderr, "controller message error: incomplete job list\n"); 61 FreeIOBuffer (&buffer);62 78 break; 63 79 } 64 p = q++; 65 sscanf (p, "%d", &JobID); 66 job = FindJob (JobID); 80 p = q + 1; 81 82 status = sscanf (p, "%d", &JobID); 83 job = FindControllerJob (JobID); 67 84 if (job == NULL) { 68 fprintf (stderr, "misplaced job? %d not in job list\n");85 fprintf (stderr, "misplaced job? %d not in CRASH job list\n", JobID); 69 86 continue; 70 87 } … … 72 89 CheckControllerJob (job); 73 90 } 91 FreeIOBuffer (&buffer); 74 92 return (TRUE); 75 93 } -
trunk/Ohana/src/opihi/pantasks/CheckSystem.c
r4706 r4714 8 8 eventually 9 9 */ 10 struct timeval start, stop; 11 double dtime; 12 13 gettimeofday (&start, (void *) NULL); 14 CheckTasks (); 15 gettimeofday (&stop, (void *) NULL); 16 dtime = DTIME (stop, start); 17 if (VerboseMode()) fprintf (stderr, "check 1: %f seconds\n", dtime); 10 18 11 CheckTasks ();19 gettimeofday (&start, (void *) NULL); 12 20 CheckJobs (); 21 gettimeofday (&stop, (void *) NULL); 22 dtime = DTIME (stop, start); 23 if (VerboseMode()) fprintf (stderr, "check 2: %f seconds\n", dtime); 24 25 gettimeofday (&start, (void *) NULL); 13 26 CheckController (); 27 gettimeofday (&stop, (void *) NULL); 28 dtime = DTIME (stop, start); 29 if (VerboseMode()) fprintf (stderr, "check 3: %f seconds\n", dtime); 30 31 gettimeofday (&start, (void *) NULL); 14 32 CheckControllerOutput (); 33 gettimeofday (&stop, (void *) NULL); 34 dtime = DTIME (stop, start); 35 if (VerboseMode()) fprintf (stderr, "check 4: %f seconds\n", dtime); 36 15 37 return (TRUE); 16 38 } -
trunk/Ohana/src/opihi/pantasks/ControllerOps.c
r4706 r4714 186 186 job[0].pid = atoi (string); 187 187 FreeIOBuffer (&buffer); 188 189 InitIOBuffer (&job[0].stdout, 0x100);190 InitIOBuffer (&job[0].stderr, 0x100);191 188 return (TRUE); 192 189 } … … 419 416 InitIOBuffer (&buffer, 0x100); 420 417 status = ControllerCommand (cmd, CONTROLLER_PROMPT, &buffer); 418 FreeIOBuffer (&buffer); 419 421 420 ControllerStatus = FALSE; 422 421 result = waitpid (ControllerPID, &waitstatus, WNOHANG); … … 429 428 close (stdout_cntl); 430 429 close (stderr_cntl); 431 432 return (TRUE); 433 } 430 FreeIOBuffer (&stdout_buffer); 431 FreeIOBuffer (&stderr_buffer); 432 433 return (TRUE); 434 } -
trunk/Ohana/src/opihi/pantasks/JobOps.c
r4706 r4714 39 39 for (i = 0; i < Njobs; i++) { 40 40 if (jobs[i][0].JobID == JobID) { 41 return (jobs[i]); 42 } 43 } 44 return (NULL); 45 } 46 47 /* return job with given controller Job ID */ 48 Job *FindControllerJob (int JobID) { 49 50 int i; 51 52 /* return job with matching JobID */ 53 for (i = 0; i < Njobs; i++) { 54 if (jobs[i][0].mode == JOB_LOCAL) continue; 55 if (jobs[i][0].pid == JobID) { 41 56 return (jobs[i]); 42 57 } … … 96 111 need to have matched entries to these quantites in the job structure */ 97 112 113 InitIOBuffer (&job[0].stdout, 0x100); 114 InitIOBuffer (&job[0].stderr, 0x100); 115 98 116 jobs[Njobs] = job; 99 117 Njobs ++; … … 117 135 } 118 136 free (job[0].argv); 137 138 FreeIOBuffer (&job[0].stdout); 139 FreeIOBuffer (&job[0].stderr); 140 free (job); 119 141 return; 120 142 } … … 161 183 gettimeofday (&job[0].start, (void *) NULL); 162 184 job[0].last = job[0].start; 163 185 job[0].state = JOB_PENDING; 164 186 return (TRUE); 165 187 } -
trunk/Ohana/src/opihi/pantasks/LocalJob.c
r4697 r4714 144 144 job[0].pid = pid; 145 145 146 InitIOBuffer (&job[0].stdout, 0x100);147 InitIOBuffer (&job[0].stderr, 0x100);148 146 return (TRUE); 149 147 -
trunk/Ohana/src/opihi/pantasks/controller_host.c
r4706 r4714 20 20 if (status) fwrite (buffer.buffer, 1, buffer.Nbuffer, stderr); 21 21 FreeIOBuffer (&buffer); 22 22 return (TRUE); 23 23 } -
trunk/Ohana/src/opihi/pantasks/init.c
r4705 r4714 53 53 int i; 54 54 55 InitTasks (); 56 InitJobs (); 57 InitJobIDs (); 58 55 59 for (i = 0; i < sizeof (cmds) / sizeof (Command); i++) { 56 60 AddCommand (&cmds[i]); -
trunk/Ohana/src/opihi/pantasks/psched.c
r4705 r4714 12 12 auto_break = TRUE; 13 13 14 Nlists = 0;15 ALLOCATE (lists, List, 1);16 17 /* init functions required by libraries */18 /* -libopihi */19 InitCommands ();20 InitMacros ();21 InitBuffers ();22 InitVectors ();23 InitVariables ();24 25 /* -libdisplay */26 InitGraph ();27 InitImage ();28 29 14 /* load the commands used by this implementation */ 30 15 InitBasic (); 31 16 InitData (); 32 InitOutfile ();33 17 InitPsched (); 34 InitTasks ();35 InitJobs ();36 InitJobIDs ();37 18 38 19 rl_readline_name = opihi_name;
Note:
See TracChangeset
for help on using the changeset viewer.
