From 95b2691ed08222c747a736f9affc957c14a288a0 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Fri, 6 Jul 2007 03:00:59 -0700 Subject: [PATCH] * Unlock the locks held when Debbugs::Control die()'s. --- Debbugs/Control.pm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Debbugs/Control.pm b/Debbugs/Control.pm index b74fba2..008d625 100644 --- a/Debbugs/Control.pm +++ b/Debbugs/Control.pm @@ -175,6 +175,13 @@ sub bug_archive { %append_action_options, }, ); + our $locks = 0; + local $SIG{__DIE__} = sub { + if ($locks) { + for (1..$locks) { unfilelock(); } + $locks = 0; + } + }; my $action = "$config{bug} archived."; my ($debug,$transcript) = __handle_debug_transcript(%param); if ($param{check_archiveable} and @@ -185,7 +192,8 @@ sub bug_archive { die "Bug $param{bug} cannot be archived"; } print {$debug} "$param{bug} considering\n"; - my ($locks, $data) = lockreadbugmerge($param{bug}); + my ($data); + ($locks, $data) = lockreadbugmerge($param{bug}); print {$debug} "$param{bug} read $locks\n"; defined $data or die "No bug found for $param{bug}"; print {$debug} "$param{bug} read ok (done $data->{done})\n"; -- 2.39.2