From: jdong7 Date: Fri, 21 Sep 2012 02:54:18 +0000 (+0800) Subject: Lock $dirty to fix for Issue#388 X-Git-Tag: 0.2~33 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=37b92c2b391cc4da80e3cc6f06412b3742b9f151;p=tools%2Fdepanneur.git Lock $dirty to fix for Issue#388 Change-Id: Ic01d2469c5d50d07dd2988e004711822371b7b9f --- diff --git a/depanneur b/depanneur index ea00e2b..e1a7709 100755 --- a/depanneur +++ b/depanneur @@ -1075,30 +1075,32 @@ while (! $TERM) { my @order = (); my @o = (); - if ($dirty) { - update_pkgdeps(); - $dirty = 0; - } - - foreach my $name (keys %to_build) { - if( ! (grep $_ eq $name, @done) && - ! (grep $_ eq $name, @skipped) && - ! (grep $_ eq $name, @running)) - { - next if (! exists $pkgdeps{$name}); - my @bdeps = @{$pkgdeps{$name}}; - my $add = 1; - foreach my $depp (@bdeps) { - if ((! grep($_ eq $depp, @skipped)) && - (! grep($_ eq $depp, @expansion_errors)) && - (! grep($_ eq $depp, @done))) { - debug("not adding $name, since it depends on $depp"); - $add = 0; - last; + { + lock($DETACHING); + if ($dirty) { + update_pkgdeps(); + $dirty = 0; + } + foreach my $name (keys %to_build) { + if( ! (grep $_ eq $name, @done) && + ! (grep $_ eq $name, @skipped) && + ! (grep $_ eq $name, @running)) + { + next if (! exists $pkgdeps{$name}); + my @bdeps = @{$pkgdeps{$name}}; + my $add = 1; + foreach my $depp (@bdeps) { + if ((! grep($_ eq $depp, @skipped)) && + (! grep($_ eq $depp, @expansion_errors)) && + (! grep($_ eq $depp, @done))) { + debug("not adding $name, since it depends on $depp"); + $add = 0; + last; + } + } + if ($add == 1 ) { + push(@order, $name); } - } - if ($add == 1 ) { - push(@order, $name); } } }