Index: /trunk/Ohana/src/photdbc/src/image-db.c
===================================================================
--- /trunk/Ohana/src/photdbc/src/image-db.c	(revision 6237)
+++ /trunk/Ohana/src/photdbc/src/image-db.c	(revision 6238)
@@ -1,27 +1,2 @@
 # include "photdbc.h"
 
-void lock_image_db (FITS_DB *db, char *filename) {
-
-  /* lock the image catalog */
-  check_permissions (filename);
-
-  db[0].lockstate = LCK_XCLD;
-  db[0].timeout   = 3600.0;
-  fits_db_init (db);
-
-  if (!fits_db_lock (db, filename)) {
-    fprintf (stderr, "ERROR: can't lock image catalog\n");
-    exit (1);
-  }
-}
-
-void unlock_image_db (FITS_DB *db) {
-
-  mode_t mode;
-
-  fits_db_close (db);
-
-  /* force permissions to 666 */
-  mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
-  chmod (db[0].filename, mode);
-}
Index: /trunk/Ohana/src/photdbc/src/load_images.c
===================================================================
--- /trunk/Ohana/src/photdbc/src/load_images.c	(revision 6237)
+++ /trunk/Ohana/src/photdbc/src/load_images.c	(revision 6238)
@@ -11,6 +11,4 @@
   region = name_region (seed, &Nregion);
 
-  if (db[0].dbstate == LCK_EMPTY) Shutdown ("ERROR: No images in catalog %s (1)", db[0].filename);
-
   /* read entire db table */
   if (!dvo_image_load (db, VERBOSE, FALSE)) Shutdown ("can't read image catalog %s", db[0].filename);
Index: /trunk/Ohana/src/photdbc/src/photdbc.c
===================================================================
--- /trunk/Ohana/src/photdbc/src/photdbc.c	(revision 6237)
+++ /trunk/Ohana/src/photdbc/src/photdbc.c	(revision 6238)
@@ -3,5 +3,5 @@
 int main (int argc, char **argv) {
 
-  int Nregion;
+  int Nregion, status;
   char filename[1024];
   Catalog *catalog;
@@ -13,5 +13,7 @@
 
   set_db (&db);
-  lock_image_db (&db, ImageCat);
+  status = dvo_image_lock (&db, ImageCat, 60.0, LCK_XCLD); /* XCLD */
+  if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db.filename);
+  if (db.dbstate == LCK_EMPTY) Shutdown ("ERROR: No images in catalog %s (1)", db.filename);
 
   /* load region and images overlapping region */
Index: /trunk/Ohana/src/uniphot/src/image-db.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/image-db.c	(revision 6237)
+++ /trunk/Ohana/src/uniphot/src/image-db.c	(revision 6238)
@@ -1,27 +1,2 @@
 # include "uniphot.h"
 
-void lock_image_db (FITS_DB *db, char *filename) {
-
-  /* lock the image catalog */
-  check_permissions (filename);
-
-  db[0].lockstate = LCK_XCLD;
-  db[0].timeout   = 3600.0;
-  fits_db_init (db);
-
-  if (!fits_db_lock (db, filename)) {
-    fprintf (stderr, "ERROR: can't lock image catalog\n");
-    exit (1);
-  }
-}
-
-void unlock_image_db (FITS_DB *db) {
-
-  mode_t mode;
-
-  fits_db_close (db);
-
-  /* force permissions to 666 */
-  mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
-  chmod (db[0].filename, mode);
-}
Index: /trunk/Ohana/src/uniphot/src/load_images.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/load_images.c	(revision 6237)
+++ /trunk/Ohana/src/uniphot/src/load_images.c	(revision 6238)
@@ -5,6 +5,4 @@
   if (VERBOSE) fprintf (stderr, "finding images\n");
 
-  if (db[0].dbstate == LCK_EMPTY) Shutdown ("ERROR: No images in catalog %s (1)", db[0].filename);
-
   /* read entire db table */
   if (!dvo_image_load (db, VERBOSE, FALSE)) Shutdown ("can't read image catalog %s", db[0].filename);
Index: /trunk/Ohana/src/uniphot/src/uniphot.c
===================================================================
--- /trunk/Ohana/src/uniphot/src/uniphot.c	(revision 6237)
+++ /trunk/Ohana/src/uniphot/src/uniphot.c	(revision 6238)
@@ -3,5 +3,5 @@
 int main (int argc, char **argv) {
 
-  int i, Ntgroup, Nsgroup;
+  int i, Ntgroup, Nsgroup, status;
   Group *tgroup, *sgroup;
   ImageLink *imlinks;
@@ -12,5 +12,8 @@
 
   set_db (&db);
-  lock_image_db (&db, ImageCat);
+  status = dvo_image_lock (&db, ImageCat, 60.0, (UPDATE ? LCK_XCLD : LCK_SOFT));
+  if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db.filename);
+  if (db.dbstate == LCK_EMPTY) Shutdown ("ERROR: No images in catalog %s (1)", db.filename);
+  if (!UPDATE) dvo_image_unlock (&db); 
 
   /* load images */
@@ -46,9 +49,8 @@
 	     sgroup[i].Nimage, sgroup[i].Ngood, 0.001*sgroup[i].M, 0.001*sgroup[i].dM, 0.001*sgroup[i].dMsub);
   }
-
   if (!UPDATE) exit (0);
 
   update (&db, sgroup, Nsgroup);
-  unlock_image_db (&db); 
+  dvo_image_unlock (&db); 
 
   exit (0);
