我想整合一些asyncore.dispatcher实例到 GLib 的 default main context .
我想我可以创建一个 custom GSource能够检测 asyncore.socket_map 中各种套接字上的事件准备情况.从 C 我相信这是通过创建必要的 GSourceFuncs 来完成的这可能涉及廉价且非阻塞的 select 调用,然后使用 asyncore.read、.write 和 friends 处理它们。
我实际上如何从 Python 创建一个 GSource? glib.Source 类是 undocumented , 并且尝试以交互方式使用该类是徒劳的。
是否有其他方法允许我处理 asyncore 中的套接字事件?模块而不诉诸超时(或任何危及潜在吞吐量和 CPU 使用率的事情)?
请您参考如下方法:
glib.io_add_watch 做到了(在主循环中添加一个 fd 监视):
http://library.gnome.org/devel/pygobject/2.26/glib-functions.html#function-glib--io-add-watch
