在触发epoll事件的边缘,我读取一个套接字(或多个套接字,如果需要),直到没有更多的数据(EAGAIN或EWOULDBLOCK),然后循环回epoll_wait。如果在处理该读取过程中,另一个套接字(当前未读取的套接字)已准备好进行读取,会发生什么情况?触发epoll的边缘会忽略这一点,因为它在触发/信号时没有阻塞epoll_wait,还是在下次调用epoll_wait时立即返回事件数组中的套接字?
发布于 2014-08-12 12:50:59
这确实会奏效,epoll的行为就好像所有发生在您发出epoll_wait调用之前的epoll组的事件都发生在您进行调用的那一刻。epoll被设计成以这种方式使用,所以不要担心这种用法。只要您处理在epoll_wait返回时触发的所有事件,您就不必担心对它的调用之间发生的任何事件,下次调用它时,它们将被捕获。
基本上:您的用法很好,请继续:)
https://stackoverflow.com/questions/25105803
复制相似问题