PollScheduler: disable default _loadavg_latency
authorZac Medico <zmedico@gentoo.org>
Mon, 8 Oct 2012 20:44:22 +0000 (13:44 -0700)
committerZac Medico <zmedico@gentoo.org>
Mon, 8 Oct 2012 20:44:22 +0000 (13:44 -0700)
Move the 30 second default to the Scheduler class, since that's the
only place that it's currently needed (all other schedulers have
relatively short-running jobs).

pym/_emerge/PollScheduler.py
pym/_emerge/Scheduler.py
pym/portage/util/_async/AsyncScheduler.py

index 1a81e2d1791e81efee9ec1d922169bff6085b355..d02b0dafcae8bf5496023751ce820b1466452bfa 100644 (file)
@@ -15,7 +15,7 @@ from _emerge.getloadavg import getloadavg
 class PollScheduler(object):
 
        # max time between loadavg checks (milliseconds)
-       _loadavg_latency = 30000
+       _loadavg_latency = None
 
        def __init__(self, main=False, event_loop=None):
                """
index 40033c2c34b41febc0bdef23851d016b58722847..3b55b2bdbf783ea3fa3e19435d325afe4f0b546d 100644 (file)
@@ -66,6 +66,9 @@ if sys.hexversion >= 0x3000000:
 
 class Scheduler(PollScheduler):
 
+       # max time between loadavg checks (milliseconds)
+       _loadavg_latency = 30000
+
        # max time between display status updates (milliseconds)
        _max_display_latency = 3000
 
@@ -1339,7 +1342,9 @@ class Scheduler(PollScheduler):
        def _main_loop(self):
                term_check_id = self._event_loop.idle_add(self._termination_check)
                loadavg_check_id = None
-               if self._max_load is not None:
+               if self._max_load is not None and \
+                       self._loadavg_latency is not None and \
+                       (self._max_jobs is True or self._max_jobs > 1):
                        # We have to schedule periodically, in case the load
                        # average has changed since the last call.
                        loadavg_check_id = self._event_loop.timeout_add(
index c6a37f59e79dde805f3c6f49ac32ce4ec9c3c554..182e19ee8c3fc49e73254408af84ad23e5e68adb 100644 (file)
@@ -66,7 +66,9 @@ class AsyncScheduler(AsynchronousTask, PollScheduler):
 
        def _start(self):
                self._term_check_id = self._event_loop.idle_add(self._termination_check)
-               if self._max_load is not None:
+               if self._max_load is not None and \
+                       self._loadavg_latency is not None and \
+                       (self._max_jobs is True or self._max_jobs > 1):
                        # We have to schedule periodically, in case the load
                        # average has changed since the last call.
                        self._loadavg_check_id = self._event_loop.timeout_add(