summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/PollScheduler.py2
-rw-r--r--pym/_emerge/Scheduler.py7
-rw-r--r--pym/portage/util/_async/AsyncScheduler.py4
3 files changed, 10 insertions, 3 deletions
diff --git a/pym/_emerge/PollScheduler.py b/pym/_emerge/PollScheduler.py
index 1a81e2d17..d02b0dafc 100644
--- a/pym/_emerge/PollScheduler.py
+++ b/pym/_emerge/PollScheduler.py
@@ -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):
"""
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
index 40033c2c3..3b55b2bdb 100644
--- a/pym/_emerge/Scheduler.py
+++ b/pym/_emerge/Scheduler.py
@@ -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(
diff --git a/pym/portage/util/_async/AsyncScheduler.py b/pym/portage/util/_async/AsyncScheduler.py
index c6a37f59e..182e19ee8 100644
--- a/pym/portage/util/_async/AsyncScheduler.py
+++ b/pym/portage/util/_async/AsyncScheduler.py
@@ -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(