IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 5, 2005, 9:53:49 AM (21 years ago)
Author:
eugene
Message:

fixed some memory leaks, pushed extra init functions into lib inits

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/pantasks/CheckController.c

    r4706 r4714  
    77  Job *job;
    88  IOBuffer buffer;
    9  
    109
    1110  /* get the list of completed jobs (exit / crash), update the job status */
    12 
    1311  if (!CheckControllerStatus()) return (TRUE);
    1412
     
    2119  }
    2220
     21  p = memstr (buffer.buffer, "USAGE: jobstack", buffer.Nbuffer);
     22  if (p != NULL) {
     23    FreeIOBuffer (&buffer);
     24    return (FALSE);
     25  }
     26
    2327  /** 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
    2534  p = buffer.buffer;
    26  
    2735  for (i = 0; i < Njobs; i++) {
    2836    q = strchr (p, '\n');
    2937    if (q == NULL) {
    3038      fprintf (stderr, "controller message error: incomplete job list\n");
    31       FreeIOBuffer (&buffer);
    3239      break;
    3340    }
    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);
    3745    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);
    3947      continue;
    4048    }
     
    4250    CheckControllerJob (job);
    4351  }
    44     
     52 
    4553  /*** check CRASH jobs ***/
    46   InitIOBuffer (&buffer, 0x100);
     54  FlushIOBuffer (&buffer);
    4755  status = ControllerCommand ("jobstack crash", CONTROLLER_PROMPT, &buffer);
    4856  if (!status) {
     
    5058    return (FALSE);
    5159  }
     60  p = memstr (buffer.buffer, "USAGE: jobstack", buffer.Nbuffer);
     61  if (p != NULL) {
     62    FreeIOBuffer (&buffer);
     63    return (FALSE);
     64  }
    5265
    5366  /** 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
    5573  p = buffer.buffer;
    56  
    5774  for (i = 0; i < Njobs; i++) {
    5875    q = strchr (p, '\n');
    5976    if (q == NULL) {
    6077      fprintf (stderr, "controller message error: incomplete job list\n");
    61       FreeIOBuffer (&buffer);
    6278      break;
    6379    }
    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);
    6784    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);
    6986      continue;
    7087    }
     
    7289    CheckControllerJob (job);
    7390  }
     91  FreeIOBuffer (&buffer);
    7492  return (TRUE);
    7593}
Note: See TracChangeset for help on using the changeset viewer.