IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20535


Ignore:
Timestamp:
Nov 4, 2008, 4:29:47 PM (18 years ago)
Author:
eugene
Message:

add interrupts to (potentially) long loops

Location:
trunk/Ohana/src/opihi/dvo
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/dvo/ccd.c

    r16810 r20535  
    77  int N1, N2, i1, i2, mode[4];
    88  int Nsecfilt, KeepNulls;
     9  void *Signal;
    910
    1011  Catalog catalog;
     
    5556  if ((yvec = SelectVector ("yv", ANYVECTOR, TRUE)) == NULL) goto escape;
    5657
     58  // grab data from all selected sky regions
     59  Signal = signal (SIGINT, handle_interrupt);
     60  interrupt = FALSE;
     61
    5762  /* loop over regions, extract data for each region */
    58   for (k = 0; k < skylist[0].Nregions; k++) {
     63  for (k = 0; (k < skylist[0].Nregions) && !interrupt; k++) {
    5964    /* lock, load, unlock catalog */
    6065    catalog.filename = skylist[0].filename[k];
     
    7075
    7176    /* get correct mags, convert to X,Y */
    72     for (i = 0; i < catalog.Naverage; i++) {
     77    for (i = 0; (i < catalog.Naverage) && !interrupt; i++) {
    7378      M1 = M2 = NULL;
    7479      m = catalog.average[i].measureOffset;
  • trunk/Ohana/src/opihi/dvo/cmd.c

    r16810 r20535  
    77  int Npts, NPTS, mode[3];
    88  int Nsecfilt, KeepNulls;
     9  void *Signal;
    910
    1011  PhotCode *code[3];
     
    5354  if ((yvec = SelectVector ("yv", ANYVECTOR, TRUE)) == NULL) goto escape;
    5455
     56  // grab data from all selected sky regions
     57  Signal = signal (SIGINT, handle_interrupt);
     58  interrupt = FALSE;
     59
    5560  /* loop over regions, extract data for each region */
    56   for (j = 0; j < skylist[0].Nregions; j++) {
     61  for (j = 0; (j < skylist[0].Nregions) && !interrupt; j++) {
    5762    /* lock, load, unlock catalog */
    5863    catalog.filename = skylist[0].filename[j];
     
    6873   
    6974    /* get correct mags, convert to X,Y */
    70     for (i = 0; i < catalog.Naverage; i++) {
     75    for (i = 0; (i < catalog.Naverage) && !interrupt; i++) {
    7176      M1 = M3 = NULL;
    7277      m = catalog.average[i].measureOffset;
  • trunk/Ohana/src/opihi/dvo/gcat.c

    r14401 r20535  
    88  SkyTable *sky;
    99  SkyList *skylist;
     10  void *Signal;
    1011
    1112  if ((argc != 3) && (argc != 4)) {
     
    2526  skylist = SkyListByRadius (sky, -1, Ra, Dec, Radius);
    2627
    27   for (i = 0; i < skylist[0].Nregions; i++) {
     28  // prepare to handle interrupt signals
     29  Signal = signal (SIGINT, handle_interrupt);
     30  interrupt = FALSE;
     31
     32  for (i = 0; (i < skylist[0].Nregions) && !interrupt; i++) {
    2833    if (stat (skylist[0].filename[i], &filestat) != -1) {
    2934      gprint (GP_ERR, "%3d %s *\n", i, skylist[0].regions[i][0].name);
  • trunk/Ohana/src/opihi/dvo/imdata.c

    r14590 r20535  
    1515  Vector *vec;
    1616  SkyRegionSelection *selection;
     17  void *Signal;
    1718
    1819  // parse skyregion options
     
    127128  vec[0].Nelements = N = 0;
    128129
     130  // prepare to handle interrupt signals
     131  Signal = signal (SIGINT, handle_interrupt);
     132  interrupt = FALSE;
     133
    129134  /* for each region file, extract the data of interest in the right time range */
    130   for (j = 0; j < skylist[0].Nregions; j++) {
     135  for (j = 0; (j < skylist[0].Nregions) && !interrupt; j++) {
    131136
    132137    /* get file name and open */
  • trunk/Ohana/src/opihi/dvo/mextract.c

    r19579 r20535  
    105105  Signal = signal (SIGINT, handle_interrupt);
    106106  interrupt = FALSE;
     107
    107108  for (i = 0; (i < skylist[0].Nregions) && !interrupt; i++) {
    108109    /* lock, load, unlock catalog */
  • trunk/Ohana/src/opihi/dvo/paverage.c

    r19823 r20535  
    66  FILE *f;
    77  int i, j, kapa, Narg, Npts, NPTS, status, VERBOSE;
    8   int Nsecfilt, Nsec;
     8  int Nsecfilt, Nsec, Nloaded;
    99  double Mz, Mr, mag;
    1010  double Radius, Rmin, Rmax, R, D;
    1111  unsigned IDclip, IDchoice, LimExclude;
    1212  float *Xvec, *Yvec, *Zvec;
     13  void *Signal;
    1314
    1415  PhotCode *photcode;
     
    99100  ALLOCATE (Zvec, float, NPTS);
    100101
    101   for (j = 0; j < skylist[0].Nregions; j++) {
     102  // prepare to handle interrupt signals
     103  Signal = signal (SIGINT, handle_interrupt);
     104  interrupt = FALSE;
     105
     106  Nloaded = 0;
     107  for (j = 0; (j < skylist[0].Nregions) && !interrupt; j++) {
    102108    catalog.filename = skylist[0].filename[j];
    103109    catalog.catflags = LOAD_AVES | LOAD_SECF;
     
    115121
    116122    /* project stars to screen display coords */
    117     for (i = 0; i < catalog.Naverage; i++) {
     123    for (i = 0; (i < catalog.Naverage) && !interrupt; i++) {
    118124      if (IDclip && (average[i].code != IDchoice)) continue;
    119125      average[i].R = ohana_normalize_angle (average[i].R);
     
    128134      D = average[i].D;
    129135      status = fRD_to_XY (&Xvec[Npts], &Yvec[Npts], R, D, &graphmode.coords);
    130       if (!status) {
    131           fprintf (stderr, ".");
    132           continue;
    133       }
     136      if (!status) continue;
    134137      Npts ++;
    135138
     
    140143          REALLOCATE (Zvec, float, NPTS);
    141144      }
    142       if (Npts > NCHUNK) {
     145      if ((Npts > NCHUNK) || (Nloaded >= 25)) {
    143146          PlotVectorTriplet (kapa, Npts, Xvec, Yvec, Zvec, &graphmode);
    144147          Npts = 0;
     148          Nloaded = 0;
    145149      }
    146150    }
     151    Nloaded ++;
    147152    dvo_catalog_free (&catalog);
    148153  }
  • trunk/Ohana/src/opihi/dvo/pmeasure.c

    r19823 r20535  
    77 
    88  FILE *f;
    9   int i, j, k, m, kapa, Narg, Npts, NPTS, status, VERBOSE, TimeSelect;
     9  int i, j, k, m, kapa, Narg, Npts, NPTS, status, VERBOSE, TimeSelect, Nloaded;
    1010  double Mz, Mr, mag;
    1111  double Radius, Rmin, Rmax, R, D, trange;
     
    1616  float *Xvec, *Yvec, *Zvec;
    1717  time_t tzero, tend;
     18  void *Signal;
    1819
    1920  SkyTable *sky;
     
    172173  ALLOCATE (Zvec, float, NPTS);
    173174
    174   for (j = 0; j < skylist[0].Nregions; j++) {
     175  // prepare to handle interrupt signals
     176  Signal = signal (SIGINT, handle_interrupt);
     177  interrupt = FALSE;
     178
     179  Nloaded = 0;
     180  for (j = 0; (j < skylist[0].Nregions) && !interrupt; j++) {
    175181    catalog.filename = skylist[0].filename[j];
    176182    catalog.catflags = LOAD_AVES | LOAD_MEAS;
     
    185191
    186192    /* project stars to screen display coords */
    187     for (i = 0; i < catalog.Naverage; i++) {
     193    for (i = 0; (i < catalog.Naverage) && !interrupt; i++) {
    188194      if (IDclip && (catalog.average[i].code != IDchoice)) continue;
    189195      catalog.average[i].R = ohana_normalize_angle (catalog.average[i].R);
     
    213219        }
    214220        status = fRD_to_XY (&Xvec[Npts], &Yvec[Npts], R, D, &graphmode.coords);
    215         if (!status) {
    216           fprintf (stderr, ".");
    217           continue;
    218         }
     221        if (!status) continue;
    219222        Npts ++;
    220223
     
    225228            REALLOCATE (Zvec, float, NPTS);
    226229        }
    227         if (Npts > NCHUNK) {
     230        if ((Npts > NCHUNK) || (Nloaded >= 25)) {
    228231            PlotVectorTriplet (kapa, Npts, Xvec, Yvec, Zvec, &graphmode);
    229232            Npts = 0;
     233            Nloaded = 0;
    230234        }
    231235      }
    232236    }
     237    Nloaded ++;
    233238    dvo_catalog_free (&catalog);
    234239  }
  • trunk/Ohana/src/opihi/dvo/skycat.c

    r19823 r20535  
    1414  SkyList *skylist;
    1515  SkyRegion **regions;
     16  void *Signal;
    1617
    1718  VERBOSE = FALSE;
     
    6061  Nregions = skylist[0].Nregions;
    6162
    62   for (i = 0; i < Nregions; i++) {
     63  // prepare to handle interrupt signals
     64  Signal = signal (SIGINT, handle_interrupt);
     65  interrupt = FALSE;
     66
     67  for (i = 0; (i < Nregions) && !interrupt; i++) {
    6368    if (ShowAll || (stat (skylist[0].filename[i], &filestat) != -1)) {
    6469      if (VERBOSE) gprint (GP_ERR, "%3d %s %6.2f - %6.2f, %6.2f - %6.2f\n", i, regions[i][0].name,
Note: See TracChangeset for help on using the changeset viewer.