C++ 我可以让一个定制的服务员使用epoll_wait进行等待,但如果条件变量发生变化,它也会立即返回吗?

C++ 我可以让一个定制的服务员使用epoll_wait进行等待,但如果条件变量发生变化,它也会立即返回吗?,c++,linux,sockets,posix,epoll,C++,Linux,Sockets,Posix,Epoll,我正在开发一个套接字库,它使用一个循环,使用epoll_wait等待所有套接字,如下所示: int ret = epoll_wait(_epoll_fd, events, EPOLL_SIZE, minDelay ? minDelay : -1); 我还想等待一个虚拟套接字。也就是说,假设我有一个完全虚拟的套接字,它只是一个类,偶尔随机生成一些数据来模拟套接字。没有文件描述符 如何将此虚拟套接字集成到库的轮询器中 如果读取或写入任何文件描述符,是否有可以立即返回的内容,但如果虚拟套接字上发生更

我正在开发一个套接字库,它使用一个循环,使用epoll_wait等待所有套接字,如下所示:

int ret = epoll_wait(_epoll_fd, events, EPOLL_SIZE, minDelay ? minDelay : -1);
我还想等待一个虚拟套接字。也就是说,假设我有一个完全虚拟的套接字,它只是一个类,偶尔随机生成一些数据来模拟套接字。没有文件描述符

如何将此虚拟套接字集成到库的轮询器中


如果读取或写入任何文件描述符,是否有可以立即返回的内容,但如果虚拟套接字上发生更改,是否也会立即返回?(可能正在等待条件变量)

epoll\u wait
只能等待文件描述符。就这样。您的“虚拟套接字”需要将自身抽象到某种文件描述符后面。可能是一个管道,这样它就可以像文件描述符一样对待,并加入epoll_wait的快乐大家庭。
epoll_wait
只能等待文件描述符。就这样。您的“虚拟套接字”需要将自身抽象到某种文件描述符后面。也许是一个管道,这样它就可以被当作一个文件描述符,加入epoll_wait的快乐大家庭。