[如果这是Gnome glib,我会创建一个GSource对象,每次在选择时阻止gnome glib的事件循环之前调用它 .

这是我想用asyncio完成的,作为asyncio noob,我还不知道该怎么做:

我需要与我没有源代码影响的传输对象集成 . 传输维护一个写缓冲区,只要其套接字可写,它就通过TCP / IP从中发送数据 . 传输与asyncio集成,因此它只在asyncio的事件循环的上下文中取得进展 . 传输公开方法 get_write_buffer_size() .

我需要创建一个异步的future或coroutine(或者其他能有效完成任务的东西),我可以调用 loop.run_until() ,这会导致 loop.run_until() 调用在传输的写缓冲区清空后尽快返回(即 transport.get_write_buffer_size() 返回0) .

如何才能有效地“异步”完成上述工作?

谢谢你,维塔利