diff options
author | Aldo Cortesi <aldo@corte.si> | 2018-04-02 11:21:52 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@corte.si> | 2018-04-02 11:21:52 +1200 |
commit | 2ac4f9e25514c46f01d1667afa808e274658abaa (patch) | |
tree | bdd14b74c9605c1fe007798106f5f2d55f01ef75 | |
parent | 2b040ff09374ad50b0878c18296beb4d9147d075 (diff) | |
download | mitmproxy-2ac4f9e25514c46f01d1667afa808e274658abaa.tar.gz mitmproxy-2ac4f9e25514c46f01d1667afa808e274658abaa.tar.bz2 mitmproxy-2ac4f9e25514c46f01d1667afa808e274658abaa.zip |
asyncio: shift console over to asyncio eventloop
-rw-r--r-- | mitmproxy/master.py | 3 | ||||
-rw-r--r-- | mitmproxy/tools/console/master.py | 11 |
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 |