diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2011-06-27 14:01:08 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2011-06-27 14:01:08 +1200 |
commit | 2ae7808ca9c83cb69fe6606051edd43e417281c7 (patch) | |
tree | 992998d8dbadea7dd79c0c83ad8ce1490ae11c3d /libmproxy | |
parent | b04d0743419d35486e53ca755967072055d84466 (diff) | |
download | mitmproxy-2ae7808ca9c83cb69fe6606051edd43e417281c7.tar.gz mitmproxy-2ae7808ca9c83cb69fe6606051edd43e417281c7.tar.bz2 mitmproxy-2ae7808ca9c83cb69fe6606051edd43e417281c7.zip |
Don't redraw the screen more often than necessary.
Diffstat (limited to 'libmproxy')
-rw-r--r-- | libmproxy/console.py | 10 | ||||
-rw-r--r-- | libmproxy/controller.py | 3 | ||||
-rw-r--r-- | libmproxy/flow.py | 2 |
3 files changed, 11 insertions, 4 deletions
diff --git a/libmproxy/console.py b/libmproxy/console.py index 4c4c9b5e..0aab9ad0 100644 --- a/libmproxy/console.py +++ b/libmproxy/console.py @@ -1306,14 +1306,18 @@ class ConsoleMaster(flow.FlowMaster): return size def loop(self): + changed = True try: while not controller.exit: startloop = time.time() - self.statusbar.redraw() - size = self.drawscreen() - self.tick(self.masterq) + if changed: + self.statusbar.redraw() + size = self.drawscreen() + changed = self.tick(self.masterq) self.ui.set_input_timeouts(max_wait=0.1) keys = self.ui.get_input() + if keys: + changed = True for k in keys: if self.prompting: if k == "esc": diff --git a/libmproxy/controller.py b/libmproxy/controller.py index 337f379d..6fed201f 100644 --- a/libmproxy/controller.py +++ b/libmproxy/controller.py @@ -65,6 +65,7 @@ class Master: self.masterq = Queue.Queue() def tick(self, q): + changed = False try: # This endless loop runs until the 'Queue.Empty' # exception is thrown. If more than one request is in @@ -74,8 +75,10 @@ class Master: # Small timeout to prevent pegging the CPU msg = q.get(timeout=0.01) self.handle(msg) + changed = True except Queue.Empty: pass + return changed def run(self): if self.server: diff --git a/libmproxy/flow.py b/libmproxy/flow.py index 087999c3..be77af33 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -540,7 +540,7 @@ class FlowMaster(controller.Master): if self.server_playback.exit and self.server_playback.count() == 0: self.shutdown() - controller.Master.tick(self, q) + return controller.Master.tick(self, q) def load_flows(self, fr): """ |