Известная ли это проблема? Вероятно, они не исправят ошибку в версии 3.11 на данном этапе ее жизненного цикла. Я ищу информацию о том, как избежать, решить или смягчить проблему. На данный момент я обнаружил, что небольшие изменения в коде имеют значение. И похоже, что wait_for играет здесь какую-то роль.
Код: Выделить всё
import asyncio
ev = asyncio.Event()
async def t1():
try:
while True:
try:
print("Waiting")
await asyncio.wait_for(ev.wait(), 99)
print("Done waiting")
ev.clear()
except TimeoutError:
print("Timeout")
raise
except asyncio.CancelledError:
print("Cancelled - as expected")
raise
async def t2():
ev.set()
raise RuntimeError()
async def main():
try:
async with asyncio.TaskGroup() as tg:
tg.create_task(t1())
tg.create_task(t2())
except* RuntimeError:
print("RuntimeError - as expected")
if __name__ == "__main__":
asyncio.run(main())
Код: Выделить всё
Waiting
Done waiting
Waiting
Cancelled - as expected
RuntimeError - as expected
Код: Выделить всё
Waiting
Done waiting
Waiting
Подробнее здесь: https://stackoverflow.com/questions/797 ... it-a-known