[如果这是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)。
如何有效地完成上述工作并且" asyncionically"?
谢谢你, 维塔利彼得