From 4ac9adbb25e1f83853976cba374d94b2a82ef124 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 6 Jan 2013 03:15:49 -0800 Subject: _keep_scheduling: check _terminated.is_set() This ensures that scheduling loops terminate as soon as possible after an interrupt is received. --- pym/_emerge/Scheduler.py | 4 ++-- pym/portage/util/_async/AsyncScheduler.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index a42327473..c2f2459f4 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.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 from __future__ import print_function @@ -1531,7 +1531,7 @@ class Scheduler(PollScheduler): self._config_pool[settings['EROOT']].append(settings) def _keep_scheduling(self): - return bool(not self._terminated_tasks and self._pkg_queue and \ + return bool(not self._terminated.is_set() and self._pkg_queue and \ not (self._failed_pkgs and not self._build_opts.fetchonly)) def _is_work_scheduled(self): diff --git a/pym/portage/util/_async/AsyncScheduler.py b/pym/portage/util/_async/AsyncScheduler.py index 182e19ee8..9b96c6f36 100644 --- a/pym/portage/util/_async/AsyncScheduler.py +++ b/pym/portage/util/_async/AsyncScheduler.py @@ -1,4 +1,4 @@ -# Copyright 2012 Gentoo Foundation +# Copyright 2012-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 from portage import os @@ -38,7 +38,7 @@ class AsyncScheduler(AsynchronousTask, PollScheduler): raise NotImplementedError(self) def _keep_scheduling(self): - return self._remaining_tasks and not self._terminated_tasks + return self._remaining_tasks and not self._terminated.is_set() def _running_job_count(self): return len(self._running_tasks) -- cgit v1.2.3-1-g7c22