aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2011-06-27 14:01:08 +1200
committerAldo Cortesi <aldo@nullcube.com>2011-06-27 14:01:08 +1200
commit2ae7808ca9c83cb69fe6606051edd43e417281c7 (patch)
tree992998d8dbadea7dd79c0c83ad8ce1490ae11c3d
parentb04d0743419d35486e53ca755967072055d84466 (diff)
downloadmitmproxy-2ae7808ca9c83cb69fe6606051edd43e417281c7.tar.gz
mitmproxy-2ae7808ca9c83cb69fe6606051edd43e417281c7.tar.bz2
mitmproxy-2ae7808ca9c83cb69fe6606051edd43e417281c7.zip
Don't redraw the screen more often than necessary.
-rw-r--r--libmproxy/console.py10
-rw-r--r--libmproxy/controller.py3
-rw-r--r--libmproxy/flow.py2
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):
"""