summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2013-01-06 00:44:12 -0800
committerZac Medico <zmedico@gentoo.org>2013-01-06 00:44:12 -0800
commit8b573eaae39ca805d29d527bbea96e97060d204a (patch)
tree0a680327b867754491e184ec6e040b321e3b06dc
parentd916da77dfc94eb30c6f512f9d7d727a8f28600c (diff)
downloadportage-8b573eaae39ca805d29d527bbea96e97060d204a.tar.gz
portage-8b573eaae39ca805d29d527bbea96e97060d204a.tar.bz2
portage-8b573eaae39ca805d29d527bbea96e97060d204a.zip
MetadataRegen: fix signal interrupt handling
We have to force it out of the scheduling loop before _termination_check can have an effect.
-rw-r--r--pym/_emerge/MetadataRegen.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/pym/_emerge/MetadataRegen.py b/pym/_emerge/MetadataRegen.py
index 80dbb5a74..6203c7851 100644
--- a/pym/_emerge/MetadataRegen.py
+++ b/pym/_emerge/MetadataRegen.py
@@ -1,4 +1,4 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
import portage
@@ -50,7 +50,7 @@ class MetadataRegen(AsyncScheduler):
consumer = self._consumer
for cp in self._cp_iter:
- if self._terminated_tasks:
+ if self._terminated.is_set():
break
cp_set.add(cp)
portage.writemsg_stdout("Processing %s\n" % cp)
@@ -60,7 +60,7 @@ class MetadataRegen(AsyncScheduler):
repo = portdb.repositories.get_repo_for_location(mytree)
cpv_list = portdb.cp_list(cp, mytree=[repo.location])
for cpv in cpv_list:
- if self._terminated_tasks:
+ if self._terminated.is_set():
break
valid_pkgs.add(cpv)
ebuild_path, repo_path = portdb.findname2(cpv, myrepo=repo.name)
@@ -86,6 +86,7 @@ class MetadataRegen(AsyncScheduler):
portdb = self._portdb
dead_nodes = {}
+ self._termination_check()
if self._terminated_tasks:
self.returncode = self._cancelled_returncode
return self.returncode