假设我已经设置了一组文件描述符,例如8、9、10、11、12,按照指定的顺序执行epoll_wait()以读取它们上面的数据。
当epoll_wait返回要在套接字8、10和11上读取的数据时,epoll数组中返回的文件描述符顺序会是8、10和11吗?还是可能会混乱呢?
当epoll_wait返回要在套接字8、10和11上读取的数据时,epoll数组中返回的文件描述符顺序会是8、10和11吗?还是可能会混乱呢?
The man page没有明确说明顺序,因此在调用时依赖顺序可能不是一个好主意。即使它们在一个实现中按顺序返回,它们可能在另一个实现中没有按顺序返回。最好假设它们可以以任何顺序返回。
仅需从逻辑上考虑一下,想必它们并非都标记为可读的单个原子操作,而 epoll_wait 可能每次调用时只返回 1 个可用的 fd。依赖其输出顺序毫无意义。