IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4767


Ignore:
Timestamp:
Aug 15, 2005, 2:02:47 PM (21 years ago)
Author:
eugene
Message:

adding run/stop control to psched/pcontrol interface

Location:
trunk/Ohana/src/opihi
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/Makefile.Common

    r4747 r4767  
    5555
    5656dist: clean
    57         rm -f $(BIN)/*
    58         rm -f $(LIB)/*
     57        rm -rf $(BIN)/*
     58        rm -rf $(LIB)/*
    5959
    6060clean-help:
  • trunk/Ohana/src/opihi/pantasks/CheckController.c

    r4763 r4767  
    11# include "psched.h"
     2
     3static struct timeval start;
     4void TimerMark ();
     5float TimerElapsed (int reset);
    26
    37int CheckController () {
    48
    5   float dtime;
    6   struct timeval start, stop;
    79  char *p, *q;
    810  int i, Njobs, status, JobID;
    911  Job *job;
    1012  IOBuffer buffer;
    11 
    12   gettimeofday (&start, (void *) NULL);
    1313
    1414  /* get the list of completed jobs (exit / crash), update the job status */
     
    1717  /*** check EXIT jobs ***/
    1818  InitIOBuffer (&buffer, 0x100);
     19  // TimerMark ();
     20  // status = ControllerCommand ("stop", CONTROLLER_PROMPT, &buffer);
     21  // if (VerboseMode()) fprintf (stderr, "stop controller %f\n", TimerElapsed(TRUE));
     22
     23  TimerMark ();
     24  FlushIOBuffer (&buffer);
    1925  status = ControllerCommand ("jobstack exit", CONTROLLER_PROMPT, &buffer);
    20   if (!status) {
    21     FreeIOBuffer (&buffer);
    22     return (FALSE);
    23   }
     26  if (VerboseMode()) fprintf (stderr, "check exit stack %f\n", TimerElapsed(TRUE));
     27  if (!status) goto escape;
    2428
     29  /** programming error **/
    2530  p = memstr (buffer.buffer, "USAGE: jobstack", buffer.Nbuffer);
    26   if (p != NULL) {
    27     FreeIOBuffer (&buffer);
    28     return (FALSE);
    29   }
     31  if (p != NULL) goto escape;
    3032
    3133  /** parse job list **/
    3234  status = sscanf (buffer.buffer, "%*s %d", &Njobs);
    33   if (status != 1) {
    34     FreeIOBuffer (&buffer);
    35     return (FALSE);
    36   }
    37 
    38   gettimeofday (&stop, (void *) NULL);
    39   dtime = DTIME (stop, start);
    40   if (VerboseMode()) fprintf (stderr, "check exit stack %f\n", dtime);
    41   /* if (Njobs) fprintf (stderr, "check exit stack %f\n", dtime); */
    42   gettimeofday (&start, (void *) NULL);
     35  if (status != 1) goto escape;
     36  if (VerboseMode()) fprintf (stderr, "parse %d jobs on stack %f\n", Njobs, TimerElapsed(TRUE));
    4337
    4438  p = buffer.buffer;
     
    6054    CheckControllerJob (job);
    6155  }
    62   gettimeofday (&stop, (void *) NULL);
    63   dtime = DTIME (stop, start);
    64   /* if (VerboseMode()) fprintf (stderr, "clear %d exit jobs %f\n", i, dtime); */
    65   gettimeofday (&start, (void *) NULL);
     56  if (VerboseMode()) fprintf (stderr, "clear %d exit jobs %f\n", i, TimerElapsed(TRUE));
    6657
    67   if (TestElapsedCheck()) return (TRUE);
     58  if (TestElapsedCheck()) goto finish;
     59  /* this will prevent us from ever checking crashed jobs... */
    6860
    6961  /*** check CRASH jobs ***/
    7062  FlushIOBuffer (&buffer);
    7163  status = ControllerCommand ("jobstack crash", CONTROLLER_PROMPT, &buffer);
    72   if (!status) {
    73     FreeIOBuffer (&buffer);
    74     return (FALSE);
    75   }
     64  if (!status) goto escape;
     65
    7666  p = memstr (buffer.buffer, "USAGE: jobstack", buffer.Nbuffer);
    77   if (p != NULL) {
    78     FreeIOBuffer (&buffer);
    79     return (FALSE);
    80   }
     67  if (p != NULL) goto escape;
    8168
    8269  /** parse job list **/
    8370  status = sscanf (buffer.buffer, "%*s %d", &Njobs);
    84   if (status != 1) {
    85     FreeIOBuffer (&buffer);
    86     return (FALSE);
    87   }
    88 
    89   gettimeofday (&stop, (void *) NULL);
    90   dtime = DTIME (stop, start);
    91   /* if (VerboseMode()) fprintf (stderr, "check crash stack %f\n", dtime); */
    92   gettimeofday (&start, (void *) NULL);
     71  if (status != 1) goto escape;
     72  if (VerboseMode()) fprintf (stderr, "check crash stack %f\n", TimerElapsed(TRUE));
    9373
    9474  p = buffer.buffer;
     
    11090    CheckControllerJob (job);
    11191  }
     92  if (VerboseMode()) fprintf (stderr, "clear %d crash jobs %f\n", i, TimerElapsed(TRUE));
     93
     94 finish:
     95  FlushIOBuffer (&buffer);
     96  // status = ControllerCommand ("run", CONTROLLER_PROMPT, &buffer);
    11297  FreeIOBuffer (&buffer);
     98  return (TRUE);
     99
     100 escape:
     101  FlushIOBuffer (&buffer);
     102  // status = ControllerCommand ("run", CONTROLLER_PROMPT, &buffer);
     103  FreeIOBuffer (&buffer);
     104  return (FALSE);
     105}
     106
     107void TimerMark () {
     108    gettimeofday (&start, (void *) NULL);
     109}
     110
     111float TimerElapsed (int reset) {
     112
     113  float dtime;
     114  struct timeval stop;
    113115
    114116  gettimeofday (&stop, (void *) NULL);
    115117  dtime = DTIME (stop, start);
    116   /* if (VerboseMode()) fprintf (stderr, "clear %d crash jobs %f\n", i, dtime); */
    117   return (TRUE);
     118  if (reset) gettimeofday (&start, (void *) NULL);
     119  return (dtime);
    118120}
    119 
    120    
  • trunk/Ohana/src/opihi/pantasks/CheckSystem.c

    r4763 r4767  
    22
    33# define MAX_DELAY 0.1
    4 struct timeval start;
     4struct timeval start, last;
    55static int Ncheck = 0;
    66
    77int CheckSystem () {
    88
     9  float dtime;
     10  struct timeval now;
     11
    912  gettimeofday (&start, (void *) NULL);
    1013
    11   if (Ncheck < 20) {
     14  if (Ncheck < 100) {
    1215    CheckTasks ();
    1316    CheckJobs ();
     
    1821    Ncheck = 0;
    1922  }
     23  /* ohana_memcheck (FALSE); */
    2024  return (TRUE);
    2125}
  • trunk/Ohana/src/opihi/pantasks/ControllerOps.c

    r4763 r4767  
    359359  }
    360360  if (status == -1) {
    361     StopController ();
    362361    if (VerboseMode()) fprintf (stderr, "controller is not responding\n");
    363362    return (FALSE);
  • trunk/Ohana/src/opihi/pcontrol/Makefile

    r4748 r4767  
    5353$(SDIR)/kill.$(ARCH).o \
    5454$(SDIR)/pulse.$(ARCH).o \
     55$(SDIR)/stop.$(ARCH).o \
     56$(SDIR)/run.$(ARCH).o \
    5557$(SDIR)/status.$(ARCH).o \
    5658$(SDIR)/stdout.$(ARCH).o \
  • trunk/Ohana/src/opihi/pcontrol/init.c

    r4748 r4767  
    99int pulse       PROTO((int, char **));
    1010int status      PROTO((int, char **));
     11int run         PROTO((int, char **));
     12int stop        PROTO((int, char **));
    1113int stderr_pc   PROTO((int, char **));
    1214int stdout_pc   PROTO((int, char **));
     
    2325  {"pulse",     pulse,     "set system pulse"},
    2426  {"status",    status,    "get system status"},
     27  {"stop",      stop,      "stop controller processing"},
     28  {"run",       run,       "start controller processing"},
    2529  {"stderr",    stderr_pc, "get stderr buffer for job"},
    2630  {"stdout",    stdout_pc, "get stdout buffer for job"},
  • trunk/Ohana/src/opihi/scripts/psched.pro

    r4763 r4767  
    2626  # correction: still valid for local tasks
    2727  periods -poll 0.20
    28   periods -exec 0.001
     28  periods -exec 0.0001
    2929  periods -timeout 10.0
    3030  nmax 1024
     31#  nmax 100
    3132  host anyhost
    3233
Note: See TracChangeset for help on using the changeset viewer.