summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorDavid James <davidjames@google.com>2011-03-16 21:54:37 -0700
committerZac Medico <zmedico@gentoo.org>2011-03-16 21:54:37 -0700
commit5283edc81874fdf5ddf157c3f85032b63955ac86 (patch)
treeb2a42fb66593d30eabb9112feb1d59e9cbc7a7c5 /pym/_emerge
parentf7b5b5f0da301d8f5c5585c21db238e28546c70f (diff)
downloadportage-5283edc81874fdf5ddf157c3f85032b63955ac86.tar.gz
portage-5283edc81874fdf5ddf157c3f85032b63955ac86.tar.bz2
portage-5283edc81874fdf5ddf157c3f85032b63955ac86.zip
Update Scheduler to protect against infinite loop
If we have running tasks, but we're not listening to these tasks, we're going to loop forever. So throw an exception in this case.
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/Scheduler.py6
1 files changed, 2 insertions, 4 deletions
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
index a1b0ae462..9215678bb 100644
--- a/pym/_emerge/Scheduler.py
+++ b/pym/_emerge/Scheduler.py
@@ -1683,15 +1683,13 @@ class Scheduler(PollScheduler):
self._set_max_jobs(1)
while self._schedule():
- if self._poll_event_handlers:
- self._poll_loop()
+ self._poll_loop()
while True:
self._schedule()
if not self._is_work_scheduled():
break
- if self._poll_event_handlers:
- self._poll_loop()
+ self._poll_loop()
def _keep_scheduling(self):
return bool(not self._terminated_tasks and self._pkg_queue and \