【发布时间】:2012-06-09 12:43:16
【问题描述】:
我一直在构建一个多线程服务器,每个线程都有一个 epoll fd 来管理传入的 tcp 连接。 对于线程间通信,我使用了 unix 域套接字,目的是利用现有的每线程 epoll。
但是,如果还添加了 unix 域套接字,Epoll 似乎停止返回网络套接字事件。
我的问题是可以使用一个 Epoll 实例来跟踪 tcp 套接字和 unix 域套接字上的事件吗?这是预期的行为吗?我没有看到任何文献表明这一点。还是我需要一个单独的 Epoll 实例来跟踪这两种不同类型的套接字?
【问题讨论】:
-
恕我直言,any 文件描述符可以被选择、轮询或 epolled。对于磁盘文件,这是相当无用的(它们总是选择可读+可写)。但是 network 套接字和 unix-domain 套接字在 select/poll/epoll 中是等价的。