New submission from Matthias Bussonnier <bussonniermatth...@gmail.com>:
Hi, Not sure if this a bug, or an intended feature. I got surprise by the following behavior. from asyncio import run, sleep, get_event_loop print(get_event_loop()) # return the current eventloop run(sleep(0)) print(get_event_loop()) # raise a RuntimeError I would expect `get_event_loop` to get back to it's initial default value. This comes from the fact that `run()` call `set_event_loop()` to `None`. with both sets `_set_called` to `True`, but `get_event_loop` seem to assume if _set_called is True, then loop cannot be none. I'm tempted to think that if `set_loop()` is called with `None`, it should reset the `_set_called` to False. Or Am I supposed to call `set_event_loop(new_event_loop())` myself ? I'm likely missing something so any insight would be appreciated; if you believe this is an actual issue I'm happy to send a PR. ---------- components: asyncio messages: 357727 nosy: asvetlov, mbussonn, yselivanov priority: normal severity: normal status: open title: Non indemnpotent behavior of asyncio.get_event_loop and asyncio.run sequence. type: behavior versions: Python 3.7, Python 3.8, Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue38955> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com