Update Scheduler to protect against infinite loop
authorDavid James <davidjames@google.com>
Thu, 17 Mar 2011 04:54:37 +0000 (21:54 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 17 Mar 2011 04:54:37 +0000 (21:54 -0700)
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.

pym/_emerge/Scheduler.py

index a1b0ae462db376694ecbaac617e0249c5ad4601d..9215678bbf7866f4f30b645835388f854250b7a3 100644 (file)
@@ -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 \