summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/ui')
-rw-r--r--bitbake/lib/bb/ui/knotty.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py
index c4ab553a3a..732540b462 100644
--- a/bitbake/lib/bb/ui/knotty.py
+++ b/bitbake/lib/bb/ui/knotty.py
@@ -128,6 +128,10 @@ class InteractConsoleLogFilter(logging.Filter):
128 return True 128 return True
129 129
130class TerminalFilter(object): 130class TerminalFilter(object):
131
132 # 40 Hz (FPS) -> 0.025 secs
133 _DEFAULT_PRINT_INTERVAL = 0.025
134
131 rows = 25 135 rows = 25
132 columns = 80 136 columns = 80
133 137
@@ -166,7 +170,7 @@ class TerminalFilter(object):
166 self.interactive = sys.stdout.isatty() 170 self.interactive = sys.stdout.isatty()
167 self.footer_present = False 171 self.footer_present = False
168 self.lastpids = [] 172 self.lastpids = []
169 self.lasttime = None 173 self.lasttime = time.time()
170 self.quiet = quiet 174 self.quiet = quiet
171 175
172 self._footer_buf = io.StringIO() 176 self._footer_buf = io.StringIO()
@@ -251,11 +255,23 @@ class TerminalFilter(object):
251 failedtasks = self.helper.failed_tasks 255 failedtasks = self.helper.failed_tasks
252 runningpids = self.helper.running_pids 256 runningpids = self.helper.running_pids
253 currenttime = time.time() 257 currenttime = time.time()
254 if not self.lasttime or (currenttime - self.lasttime > 5): 258 deltatime = currenttime - self.lasttime
259
260 if (deltatime > 5.0):
255 self.helper.needUpdate = True 261 self.helper.needUpdate = True
256 self.lasttime = currenttime 262 need_update = self.helper.needUpdate
257 if self.footer_present and not self.helper.needUpdate: 263 else:
264 # Do not let to update faster then _DEFAULT_PRINT_INTERVAL
265 # to avoid heavy print() flooding.
266 need_update = self.helper.needUpdate and (deltatime > self._DEFAULT_PRINT_INTERVAL)
267
268 if self.footer_present and (not need_update):
269 # Footer update is not need.
258 return 270 return
271 else:
272 # Footer update is need and store its "lasttime" value.
273 self.lasttime = currenttime
274
259 self.helper.needUpdate = False 275 self.helper.needUpdate = False
260 if (not self.helper.tasknumber_total or self.helper.tasknumber_current == self.helper.tasknumber_total) and not len(activetasks): 276 if (not self.helper.tasknumber_total or self.helper.tasknumber_current == self.helper.tasknumber_total) and not len(activetasks):
261 self.clearFooter() 277 self.clearFooter()