Message 412036 - Python tracker

This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Content
So I just realized that the OP's description is slightly misleading. (Their code is spot on though!)

The code does not create an unwaited-for *task*, assuming that "task" refers to the asyncio.Task class.

What is created is a *coroutine* object that's never awaited (as the quoted RuntimeWarning message says: "coroutine 'foo' was never awaited").

So the thing that needs to be closed in the bowels of _ensure_future() is indeed the argument (coro_or_future), in case it is a coroutine object.