diff options
Diffstat (limited to 't/task_groups_and_cancel.py')
| -rw-r--r-- | t/task_groups_and_cancel.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/t/task_groups_and_cancel.py b/t/task_groups_and_cancel.py new file mode 100644 index 0000000..dcc6bbe --- /dev/null +++ b/t/task_groups_and_cancel.py @@ -0,0 +1,35 @@ +import asyncio + + +async def sleep(): + await asyncio.sleep(3) + print('I should never finish!') + return 0 + + +async def work(): + i = 0 + while i < 50: + i += 1 + await asyncio.sleep(0.2) + return 0 + + +async def explode(): + await asyncio.sleep(1.5) + a = 1 / 0 + return a + + +async def main(): + # exploding will bring all other tasks down with it! + try: + async with asyncio.TaskGroup() as tg: + tg.create_task(sleep()) + tg.create_task(work()) + tg.create_task(explode()) + except: + pass + + +asyncio.run(main()) |
