提问人:Lars M. 提问时间:12/30/2017 最后编辑:Eric HauensteinLars M. 更新时间:1/14/2018 访问量:249
Linux FD 向用户公开等待
Linux FD expose to user for waiting
问:
想象一下,有一个库可以启动服务器套接字并管理所有客户端的 epoll fd。由于一切都应该是非阻塞的,因此控制权被传递给用户,该用户可能希望在不同的 fds 上进行选择,包括通知库的 fds。
目前,用户指定回调。然后,用户可以调用服务例程来评估 epoll 并调用这些回调,以避免不断调用服务例程,而是执行用户可能希望在 epoll fd 上等待的其他操作。
在不暴露 epoll fd 的情况下向用户公开 fd 的正确方法是什么?对我来说,更好的解决方案是创建第二个只读文件描述符,如果 epoll 变得可读,它就会变得可读。这可能吗?
我知道使用服务线程的可能解决方案,但我更希望我能在不增加同步复杂性的情况下做到这一点。
另一个可能的解决方案是 eventfd 和一个线程,该线程轮询 epoll fd 然后触发 eventfd。但这似乎太过分了。
答: 暂无答案
评论