John Belmonte <j...@neggie.net> added the comment:
demonstrating the difference for async case: import contextlib import trio async def background(): assert False async def main1(): async with trio.open_nursery() as nursery: nursery.start_soon(background) await trio.sleep_forever() async def main2(): async with contextlib.AsyncExitStack() as stack: nursery = await stack.enter_async_context(trio.open_nursery()) nursery.start_soon(background) await trio.sleep_forever() try: trio.run(main1) except BaseException as e: print('main1, context:', e.__context__) try: trio.run(main2) except BaseException as e: print('main2, context:', e.__context__) ---- main1, context: None main2, context: Cancelled ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue44594> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com