On 20.12.2015 01:26, Kevin Conway wrote: > async def coroutine(): > try: > await Awaitable() > await Awaitable() > finally: > print('finally') Try adding another "await Awaitable()" after the "finally:".
I have to take back my "doesn't print an error" comment, however; there's another reference to the Condition.wait() generator (the task asyncio.wait() creates to wrap the generator in), and the "Task was destroyed but it is pending!" message got delayed sufficiently that I missed it. (Dying test cases tend to spew many of these.) Testcase: import asyncio import gc cond = asyncio.Condition() loop = asyncio.get_event_loop() async def main(): async with cond: # asyncio.wait() does this, if we don't w = asyncio.ensure_future(cond.wait()) await asyncio.wait([w],timeout=1) print(gc.get_referrers(w)) loop.run_until_complete(main()) Time to refactor my code to do the wait/timeout outside the "async with cond". -- -- Matthias Urlichs _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com