diff options
author | Aldo Cortesi <aldo@corte.si> | 2018-04-02 11:03:05 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@corte.si> | 2018-04-02 11:03:05 +1200 |
commit | 2b040ff09374ad50b0878c18296beb4d9147d075 (patch) | |
tree | 228c896bff7f1b0b74f4df15b6c1ffa62ecb0a79 /mitmproxy/master.py | |
parent | 28a8ddc0e827149c76a738e6363713ed2ebc0eac (diff) | |
download | mitmproxy-2b040ff09374ad50b0878c18296beb4d9147d075.tar.gz mitmproxy-2b040ff09374ad50b0878c18296beb4d9147d075.tar.bz2 mitmproxy-2b040ff09374ad50b0878c18296beb4d9147d075.zip |
asyncio: make http2 tests pass
Diffstat (limited to 'mitmproxy/master.py')
-rw-r--r-- | mitmproxy/master.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/mitmproxy/master.py b/mitmproxy/master.py index 2f47ae09..b1dd7d52 100644 --- a/mitmproxy/master.py +++ b/mitmproxy/master.py @@ -92,13 +92,12 @@ class Master: async def main(self): while True: - if self.should_exit.is_set(): + try: + mtype, obj = await self.event_queue.get() + except RuntimeError: return - mtype, obj = await self.event_queue.get() if mtype not in eventsequence.Events: - raise exceptions.ControlException( - "Unknown event %s" % repr(mtype) - ) + raise exceptions.ControlException("Unknown event %s" % repr(mtype)) self.addons.handle_lifecycle(mtype, obj) self.event_queue.task_done() @@ -117,8 +116,12 @@ class Master: self.start() asyncio.ensure_future(self.main()) asyncio.ensure_future(self.tick()) - asyncio.get_event_loop().run_forever() - self.shutdown() + loop = asyncio.get_event_loop() + try: + loop.run_forever() + finally: + self.shutdown() + loop.close() self.addons.trigger("done") def shutdown(self): |