如何在selectio事件循环调用select / epoll / etc之前每次调用asyncio注册一个对象?

时间:2018-03-19 21:02:10

标签: python-asyncio

[如果这是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"?

谢谢你, 维塔利彼得

0 个答案:

没有答案