C 单个Epoll fd能否用于监视不同类型套接字上的事件?

C 单个Epoll fd能否用于监视不同类型套接字上的事件?,c,linux,C,Linux,我一直在构建一个多线程服务器,每个线程都有一个epollfd来管理传入的tcp连接。 对于线程间通信,我使用unix域套接字,目的是利用现有的每线程epoll 但是,如果还添加了unix域套接字,Epoll似乎会停止返回网络套接字事件 我的问题是,是否可以使用一个Epoll实例来跟踪tcp套接字和unix域套接字上的事件?这是预期的行为吗?我没有看到任何文献表明这一点。或者我需要有一个单独的Epoll实例来跟踪这两种不同类型的套接字吗?Epoll、poll和select被设计为监视多个文件描述符

我一直在构建一个多线程服务器,每个线程都有一个epollfd来管理传入的tcp连接。 对于线程间通信,我使用unix域套接字,目的是利用现有的每线程epoll

但是,如果还添加了unix域套接字,Epoll似乎会停止返回网络套接字事件


我的问题是,是否可以使用一个Epoll实例来跟踪tcp套接字和unix域套接字上的事件?这是预期的行为吗?我没有看到任何文献表明这一点。或者我需要有一个单独的Epoll实例来跟踪这两种不同类型的套接字吗?

Epoll、poll和select被设计为监视多个文件描述符。它不限制在任何时候只监视文件/套接字描述符的一个实例

是否可以使用一个Epoll实例来跟踪tcp套接字和unix域套接字上的事件? 是的,使用epoll没有具体限制

查看一下可以选择、轮询或epoll任何文件描述符的示例epoll程序。对于磁盘文件,这是非常无用的(它们总是选择可读+可写)。但网络套接字和unix域套接字是等效的wrt select/poll/epoll。