New submission from Hrvoje Nikšić <hnik...@gmail.com>: It seems impossible to correctly close() an asyncio Process on which terminate has been invoked. Take the following coroutine:
async def test(): proc = await asyncio.create_subprocess_shell( "sleep 1", stdout=asyncio.subprocess.PIPE) proc.terminate() await proc.wait() After running it with asyncio.run(), Python prints a warning about "Event loop is closed" exception ignored in BaseSubprocessTransport.__del__. The code does wait for the process to exit, and neither proc nor proc.stdout have a close() method, so the warning seems spurious. Commenting out proc.terminate() makes the program finish without an exception (but then it waits for a full second, of course). Runnable example attached. ---------- components: asyncio files: terminate.py messages: 332165 nosy: asvetlov, hniksic, yselivanov priority: normal severity: normal status: open title: Cannot properly close terminated process versions: Python 3.7 Added file: https://bugs.python.org/file48008/terminate.py _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue35539> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com