Zero
Results
3
comments of
Zero
因为你readers不为空,会一直Rearm,重现步骤是:启动echo server,客户端发起连接,但是不发任何数据。
这是我启动echo_server, telnet 连接上去,CPU的占用 
还有个问题,我注意到你使用了EPOLLONESHOT|EPOLLET方式添加到epoll,但是每次从fd读数据(tryRead函数)并没有保证读干净(一直读到EAGAIN)。比如客户端向服务端发送7K数据并停止,服务端内核buffer中立即收到了7K数据,这时发起一个异步读请求ReadFull 4K数据能返回,但是后面只要客户端不再发数据,因为ET模式的缘故,就再也不会唤醒读了,导致剩余3K数据读不到。