aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2018-04-02 11:21:52 +1200
committerAldo Cortesi <aldo@corte.si>2018-04-02 11:21:52 +1200
commit2ac4f9e25514c46f01d1667afa808e274658abaa (patch)
treebdd14b74c9605c1fe007798106f5f2d55f01ef75
parent2b040ff09374ad50b0878c18296beb4d9147d075 (diff)
downloadmitmproxy-2ac4f9e25514c46f01d1667afa808e274658abaa.tar.gz
mitmproxy-2ac4f9e25514c46f01d1667afa808e274658abaa.tar.bz2
mitmproxy-2ac4f9e25514c46f01d1667afa808e274658abaa.zip
asyncio: shift console over to asyncio eventloop
-rw-r--r--mitmproxy/master.py3
-rw-r--r--mitmproxy/tools/console/master.py11
2 files changed, 5 insertions, 9 deletions
diff --git a/mitmproxy/master.py b/mitmproxy/master.py
index b1dd7d52..c22a78e4 100644
--- a/mitmproxy/master.py
+++ b/mitmproxy/master.py
@@ -42,6 +42,8 @@ class Master:
self.event_queue,
self.should_exit,
)
+ asyncio.ensure_future(self.main())
+ asyncio.ensure_future(self.tick())
self.options = opts or options.Options() # type: options.Options
self.commands = command.CommandManager(self)
@@ -114,7 +116,6 @@ class Master:
def run(self):
self.start()
- asyncio.ensure_future(self.main())
asyncio.ensure_future(self.tick())
loop = asyncio.get_event_loop()
try:
diff --git a/mitmproxy/tools/console/master.py b/mitmproxy/tools/console/master.py
index 5cc1cf43..de660b17 100644
--- a/mitmproxy/tools/console/master.py
+++ b/mitmproxy/tools/console/master.py
@@ -1,3 +1,4 @@
+import asyncio
import mailcap
import mimetypes
import os
@@ -182,12 +183,6 @@ class ConsoleMaster(master.Master):
)
self.ui.clear()
- def ticker(self, *userdata):
- changed = self.tick(timeout=0)
- if changed:
- self.loop.draw_screen()
- self.loop.set_alarm_in(0.01, self.ticker)
-
def inject_key(self, key):
self.loop.process_input([key])
@@ -206,6 +201,7 @@ class ConsoleMaster(master.Master):
)
self.loop = urwid.MainLoop(
urwid.SolidFill("x"),
+ event_loop=urwid.AsyncioEventLoop(loop=asyncio.get_event_loop()),
screen = self.ui,
handle_mouse = self.options.console_mouse,
)
@@ -214,8 +210,6 @@ class ConsoleMaster(master.Master):
self.loop.widget = self.window
self.window.refresh()
- self.loop.set_alarm_in(0.01, self.ticker)
-
if self.start_err:
def display_err(*_):
self.sig_add_log(None, self.start_err)
@@ -236,6 +230,7 @@ class ConsoleMaster(master.Master):
finally:
sys.stderr.flush()
super().shutdown()
+ self.addons.trigger("done")
def shutdown(self):
raise urwid.ExitMainLoop