]> git.decadent.org.uk Git - dak.git/commitdiff
Really fix locking behaviour of dinstall.
authorTorsten Werner <twerner@debian.org>
Thu, 10 Feb 2011 12:49:02 +0000 (13:49 +0100)
committerTorsten Werner <twerner@debian.org>
Thu, 10 Feb 2011 12:49:02 +0000 (13:49 +0100)
Signed-off-by: Torsten Werner <twerner@debian.org>
config/debian/cron.dinstall
config/debian/dinstall.functions

index d66e2348093906cddbee525710896863d2321d36..6f7cf0d877b878e4cb2608ae42f096295e2d52f5 100755 (executable)
@@ -159,7 +159,7 @@ state "Startup"
 
 lockfile -l 3600 "${LOCK_DAILY}"
 trap onerror ERR
-trap cleanup EXIT TERM HUP INT QUIT
+trap remove_daily_lock EXIT TERM HUP INT QUIT
 
 touch "${LOCK_BRITNEY}"
 
@@ -205,6 +205,7 @@ stage $GO
 
 lockfile "$LOCK_ACCEPTED"
 lockfile "$LOCK_NEW"
+trap remove_all_locks EXIT TERM HUP INT QUIT
 
 GO=(
     FUNC="punew"
@@ -381,7 +382,8 @@ GO=(
 )
 stage $GO
 
-remove_locks
+remove_all_locks
+trap - EXIT TERM HUP INT QUIT
 
 ts "locked part finished"
 state "postlock"
index 1834841b74b1ad04505b0aca1e093f63d92af4eb..be4ed572dd687f3a53bf48289f41cd8ec95dff2f 100644 (file)
@@ -4,14 +4,14 @@ function ts() {
         echo "Archive maintenance timestamp ($1): $(date +%H:%M:%S)"
 }
 
-# Remove all locks
-function remove_locks() {
-    rm -f $LOCK_DAILY $LOCK_ACCEPTED $LOCK_NEW
+# Remove daily lock
+function remove_daily_lock() {
+    rm -f $LOCK_DAILY
 }
 
-# trap handler for cleaning up on signal / error
-function cleanup() {
-    remove_locks
+# Remove all locks
+function remove_all_locks() {
+    rm -f $LOCK_DAILY $LOCK_ACCEPTED $LOCK_NEW
 }
 
 # If we error out this one is called, *FOLLOWED* by cleanup above