在边缘触发的epoll事件中,我读取了一个套接字(或多个套接字,如果需要),直到没有更多数据(EAGAIN
或EWOULDBLOCK
)然后循环回epoll_wait
。如果在处理读取时,另一个套接字(当前未读取的套接字)已准备好读取,会发生什么?边缘触发epoll会忽略这一点,因为它在触发/信号时没有在epoll_wait
中阻塞,或者在下次调用epoll_wait
时立即返回事件数组中的套接字?
答案 0 :(得分:3)
这确实有效,epoll就像你拨打epoll_wait之前发生在epoll群上的所有事件一样。 epoll旨在以这种方式使用,所以不要担心这种用法。只要您处理epoll_wait返回时触发的所有事件,您无需担心在调用它之间发生的任何事件,它们将在您下次调用时被捕获。
基本上:你的用法很好,继续:)