我想使用kqueue监视文件的更改。我可以看到如何以线程方式使用select.kqueue()
我正在寻找一种将其用于asyncio的方法。我可能错过了一些非常明显的东西。我知道python使用kqueue for asyncio on macos。我很高兴任何解决方案只在使用kqueue选择器时才起作用
到目前为止,我能看到的唯一方法是创建一个线程,从另一个线程继续kqueue.control()
,然后用asyncio.loop.call_soon_threadsafe()
注入事件。我觉得应该有更好的办法
Tags:
您可以使用loop.add_reader()将来自kqueue对象的FD作为读卡器添加到控制循环中。然后,控制循环将通知您事件已准备好收集
这样做有两个特点,对于熟悉kqueue的人来说可能很奇怪:
asyncio.wait_for()
重新实现有更有效的编写方法,但下面是一个如何用异步方法(此处命名为
kqueue_control
)完全替换select.kqueue.control
的示例:相关问题 更多 >
编程相关推荐