Results 3 comments of Zero

因为你readers不为空,会一直Rearm,重现步骤是:启动echo server,客户端发起连接,但是不发任何数据。

这是我启动echo_server, telnet 连接上去,CPU的占用 ![image](https://user-images.githubusercontent.com/1538781/121626980-0fe6cd80-caa9-11eb-8163-57f960d40673.png)

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