边缘触发的epoll c

jay*_*jay 5 c sockets epoll

在边缘触发的epoll事件中,我读取了一个套接字(或多个套接字,如果需要),直到没有更多的数据(EAGAINEWOULDBLOCK)然后循环回来epoll_wait.如果在处理读取时,另一个套接字(当前未读取的套接字)已准备好读取,会发生什么?边缘触发epoll是否会忽略这一点,因为它epoll_wait在触发/信号时没有阻塞,或者它会在下一次调用时立即返回事件数组中的套接字epoll_wait

Val*_*ity 4

这确实有效,epoll 的行为就像在您进行 epoll_wait 调用之前发生在 epoll 组上的所有事件都在您进行调用时发生一样。epoll 就是为了这种方式而设计的,所以不用担心这种用法。只要您处理了在 epoll_wait 返回时触发的所有事件,您就不必担心调用它之间发生的任何事件,它们将在您下次调用它时被捕获。

基本上:您的使用情况很好,继续:)