From 8b573eaae39ca805d29d527bbea96e97060d204a Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 6 Jan 2013 00:44:12 -0800 Subject: MetadataRegen: fix signal interrupt handling We have to force it out of the scheduling loop before _termination_check can have an effect. --- pym/_emerge/MetadataRegen.py | 7 ++++--- 1 file 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 -- cgit v1.2.3-1-g7c22