IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38622


Ignore:
Timestamp:
Jul 22, 2015, 6:09:33 PM (11 years ago)
Author:
eugene
Message:

protect the catalog I/O layer from signals which can be blocked (ie, allow kill to kill gracefully)

Location:
branches/eam_branches/ipp-20150625/Ohana/src/dvomerge
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/Makefile

    r38468 r38622  
    4040$(SRC)/dvo_image_merge_dbs.$(ARCH).o \
    4141$(SRC)/IDmapIO.$(ARCH).o \
     42$(SRC)/ConfigInit.$(ARCH).o \
    4243$(SRC)/SetSignals.$(ARCH).o \
    43 $(SRC)/ConfigInit.$(ARCH).o \
    4444$(SRC)/Shutdown.$(ARCH).o \
    4545$(SRC)/help.$(ARCH).o \
     
    131131$(SRC)/ReadDeleteList.$(ARCH).o \
    132132$(SRC)/ReadDeleteListExternID.$(ARCH).o \
     133$(SRC)/SetSignals.$(ARCH).o \
     134$(SRC)/Shutdown.$(ARCH).o \
    133135$(SRC)/myIndex.$(ARCH).o \
    134136$(SRC)/match_image.$(ARCH).o \
     
    140142
    141143DVOVERIFY = \
     144$(SRC)/SetSignals.$(ARCH).o \
     145$(SRC)/Shutdown.$(ARCH).o \
    142146$(SRC)/dvoverify.$(ARCH).o \
    143147$(SRC)/dvoverify_args.$(ARCH).o \
     
    149153
    150154DVOVERIFY_CLIENT = \
     155$(SRC)/SetSignals.$(ARCH).o \
     156$(SRC)/Shutdown.$(ARCH).o \
    151157$(SRC)/dvoverify_client.$(ARCH).o \
    152158$(SRC)/dvoverify_args.$(ARCH).o \
     
    158164
    159165DVOUTILS = \
     166$(SRC)/SetSignals.$(ARCH).o \
     167$(SRC)/Shutdown.$(ARCH).o \
    160168$(SRC)/dvoutils.$(ARCH).o \
    161169$(SRC)/dvoutils_args.$(ARCH).o \
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/include/dvoutils.h

    r37807 r38622  
    3333
    3434Image *dvoutils_load_image_table (char *filename, int *nimage);
     35
     36int        SetSignals             PROTO((void));
     37void       SetProtect             PROTO((int mode));
     38void       TrapSignal             PROTO((int sig));
     39int        Shutdown               PROTO((char *format, ...)) OHANA_FORMAT(printf, 1, 2);
     40
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/include/dvoverify.h

    r38553 r38622  
    6262
    6363void FreeImageIDs (void);
     64
     65int        SetSignals             PROTO((void));
     66void       SetProtect             PROTO((int mode));
     67void       TrapSignal             PROTO((int sig));
     68int        Shutdown               PROTO((char *format, ...)) OHANA_FORMAT(printf, 1, 2);
     69
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvoconvert.c

    r38441 r38622  
    9494
    9595    outcatalog.catflags = DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_MISSING | DVO_LOAD_SECFILT;
     96
     97    SetProtect (TRUE);
     98    if (!dvo_catalog_save (&outcatalog, VERBOSE)) { fprintf (stderr, "ERROR: failed to save %s\n", outcatalog.filename); exit (1); }
     99    if (!dvo_catalog_unlock (&outcatalog)) { fprintf (stderr, "ERROR: failed to unlock %s\n", outcatalog.filename); exit (1); }
     100    SetProtect (FALSE);
     101
    96102    dvo_catalog_save (&outcatalog, VERBOSE);
    97103    dvo_catalog_unlock (&outcatalog);
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvomergeContinue.c

    r38441 r38622  
    133133      // if we receive a signal which would cause us to exit, wait until the full catalog is written
    134134      SetProtect (TRUE);
    135       if (!dvo_catalog_save (&outcatalog, VERBOSE)) {
    136         fprintf (stderr, "ERROR: failed to save catalog %s\n", outlist[0].filename[j]);
    137         exit (1);
    138       }
     135      if (!dvo_catalog_save (&outcatalog, VERBOSE)) { fprintf (stderr, "ERROR: failed to save %s\n", outcatalog.filename); exit (1); }
     136      if (!dvo_catalog_unlock (&outcatalog)) { fprintf (stderr, "ERROR: failed to unlock %s\n", outcatalog.filename); exit (1); }
    139137      SetProtect (FALSE);
    140138
    141       dvo_catalog_unlock (&outcatalog);
    142139      dvo_catalog_free (&outcatalog);
    143140
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvomergeContinue_threaded.c

    r38441 r38622  
    7777      SetProtect (TRUE);
    7878      if (!dvo_catalog_save (&outcatalog, VERBOSE)) {
    79         fprintf (stderr, "ERROR: failed to save catalog %s\n", outlist[0].filename[j]);
     79        fprintf (stderr, "ERROR: failed to save catalog %s\n", outcatalog.filename);
     80        threadData->state = TS_FAIL;
     81        continue;
     82      }
     83      if (!dvo_catalog_unlock (&outcatalog)) {
     84        fprintf (stderr, "ERROR: failed to unlock catalog %s\n", outcatalog.filename);
    8085        threadData->state = TS_FAIL;
    8186        continue;
     
    8388      SetProtect (FALSE);
    8489
    85       dvo_catalog_unlock (&outcatalog);
    8690      dvo_catalog_free (&outcatalog);
    8791
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvomergeCreate.c

    r38441 r38622  
    178178    SkyListFree (inlist);
    179179
    180     dvo_catalog_save (&outcatalog, VERBOSE);
    181     dvo_catalog_unlock (&outcatalog);
     180    SetProtect (TRUE);
     181    if (!dvo_catalog_save (&outcatalog, VERBOSE)) { fprintf (stderr, "ERROR: failed to save %s\n", outcatalog.filename); exit (1); }
     182    if (!dvo_catalog_unlock (&outcatalog)) { fprintf (stderr, "ERROR: failed to unlock %s\n", outcatalog.filename); exit (1); }
     183    SetProtect (FALSE);
     184
    182185    dvo_catalog_free (&outcatalog);
    183186  }
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvomergeFromList.c

    r38441 r38622  
    147147    // if we receive a signal which would cause us to exit, wait until the full catalog is written
    148148    SetProtect (TRUE);
    149     if (!dvo_catalog_save (&outcatalog, VERBOSE)) {
    150       fprintf (stderr, "ERROR: failed to save catalog %s\n", outputfile);
    151       exit (1);
    152     }
     149    if (!dvo_catalog_save (&outcatalog, VERBOSE)) { fprintf (stderr, "ERROR: failed to save catalog %s\n", outcatalog.filename); exit (1); }
     150    if (!dvo_catalog_unlock (&outcatalog)) { fprintf (stderr, "ERROR: failed to unlock catalog %s\n", outcatalog.filename); exit (1); }
    153151    SetProtect (FALSE);
    154152   
     
    158156    OutputStatusFree (outstat, 1);
    159157
    160     dvo_catalog_unlock (&outcatalog);
    161158    dvo_catalog_free (&outcatalog);
    162159   
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c

    r38588 r38622  
    208208      // if we receive a signal which would cause us to exit, wait until the full catalog is written
    209209      SetProtect (TRUE);
    210       if (!dvo_catalog_save (&outcatalog, VERBOSE)) {
    211         fprintf (stderr, "ERROR: failed to save catalog %s\n", outlist[0].filename[j]);
    212         exit (1);
    213       }
     210      if (!dvo_catalog_save (&outcatalog, VERBOSE)) { fprintf (stderr, "ERROR: failed to save catalog %s\n", outcatalog.filename); exit (1); }
     211      if (!dvo_catalog_unlock (&outcatalog)) { fprintf (stderr, "ERROR: failed to unlock catalog %s\n", outcatalog.filename); exit (1); }
    214212      SetProtect (FALSE);
    215 
    216       if (!dvo_catalog_unlock (&outcatalog)) {
    217         fprintf (stderr, "ERROR: failed to unlock catalog %s\n", outlist[0].filename[j]);
    218         exit (1);
    219       }
    220213
    221214      if (!dvo_catalog_unlink_backup (&outcatalog, TRUE)) {
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvomergeUpdate_threaded.c

    r38441 r38622  
    7575      SetProtect (TRUE);
    7676      if (!dvo_catalog_save (&outcatalog, VERBOSE)) {
    77         fprintf (stderr, "ERROR: failed to save catalog %s\n", outlist[0].filename[j]);
     77        fprintf (stderr, "ERROR: failed to save catalog %s\n", outcatalog.filename);
     78        threadData->state = TS_FAIL;
     79        continue;
     80      }
     81      if (!dvo_catalog_unlock (&outcatalog)) {
     82        fprintf (stderr, "ERROR: failed to save catalog %s\n", outcatalog.filename);
    7883        threadData->state = TS_FAIL;
    7984        continue;
     
    8186      SetProtect (FALSE);
    8287
    83       dvo_catalog_unlock (&outcatalog);
    8488      dvo_catalog_free (&outcatalog);
    8589
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvomerge_client.c

    r35818 r38622  
    33int main (int argc, char **argv) {
    44
     5  SetSignals ();
    56  dvomerge_client_help (argc, argv);
    67  ConfigInit (&argc, argv);
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvorepair.c

    r37807 r38622  
    77  // exit (2);
    88
     9  SetSignals ();
    910  dvorepair_help(argc, argv);
    1011 
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvorepairCPT.c

    r38441 r38622  
    3939    exit (2);
    4040  }
     41
     42  SetSignals ();
    4143
    4244  imageFilename  = argv[1];
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvorepairImageVsMeasure.c

    r38441 r38622  
    3939  }
    4040
     41  SetSignals ();
    4142  catdir = argv[1];
    4243  Ntol = atoi(argv[2]);
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvosecfilt_catalogs.c

    r38471 r38622  
    8282    catalog.Nsecfilt_disk = Nsecfilt * catalog.Naverage_disk;
    8383
    84     dvo_catalog_save (&catalog, VERBOSE);
    85     dvo_catalog_unlock (&catalog);
     84    SetProtect (TRUE);
     85    if (!dvo_catalog_save (&catalog, VERBOSE)) { fprintf (stderr, "ERROR: failed to save %s\n", catalog.filename); exit (1); }
     86    if (!dvo_catalog_unlock (&catalog)) { fprintf (stderr, "ERROR: failed to unlock %s\n", catalog.filename); exit (1); }
     87    SetProtect (FALSE);
     88
    8689    dvo_catalog_free (&catalog);
    8790  }
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvoutils.c

    r37807 r38622  
    44
    55  // check various options
     6  SetSignals ();
    67  dvoutils_args (&argc, argv);
    78
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvoverify.c

    r38616 r38622  
    1414
    1515  // check various options
     16  SetSignals ();
    1617  dvoverify_args (&argc, argv);
    1718  CATDIR = argv[1];
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/dvoverify_client.c

    r37360 r38622  
    88
    99  // check various options
     10  SetSignals ();
    1011  dvoverify_client_args (&argc, argv);
    1112  CATDIR = argv[1];
Note: See TracChangeset for help on using the changeset viewer.