yihong0618 和朋友们的频道 头像

消息来源频道

yihong0618 和朋友们的频道

@hyi0618

频道8,612 位成员公开可见0 人在线

yihong0618 和朋友们的频道

成员规模8,612 位成员
在线情况0 人在线
消息总数10,129 条消息
浏览量总数3,281,861 次浏览

在这个频道里搜索消息……

t.me/hyi0618

Дорогой дневник, сегодня я 2 часа дебагала асинхронный код, только чтобы узнать, что метод Process.wait, задокументированный как
Wait for the child process to terminate.
...внезапно не делает действие "wait for the child process to terminate", а делает полный мусор, который был нужен -1 человеку за всё время существования asyncio — ждёт, пока закроются все потоки I/O, что с завершением процесса имеет ровно ничего общего.
А сделать действие, которое под "wait for the child process to terminate" понимают не рептилоиды, а человеки, т.е. wait(2), в asyncio нельзя никак.
import asyncio
async def main():
process = await asyncio.create_subprocess_exec("yes", stdout=asyncio.subprocess.PIPE)
await asyncio.sleep(1)
process.kill()
await process.wait() # hangs
asyncio.run(main())