cokeboL

Results 4 comments of cokeboL

2. Connection的Stop没有保证一致性,比如应用层主动调用Stop,读协程中刚好触发了Stop,两个协程在判断 c.isClosed 时都是false,后面的close chan等就会执行多次,导致panic,此处可以改成原子或者加锁

3. func (c *Connection) StartWriter() 中最好也defer Stop, 比如客户端关闭了读,会触发写失败,写协程已经退出了,但是客户端读并没有失败,不能及时关闭异常连接,应用层可能继续给这个Connection发包,然后请看问题4

4. Connection的SendMsg中,建议用select + default,避免chan满时导致应用层阻塞 ```golang c.msgChan

只看了几分钟代码,暂时感觉以上几个地方存在问题,如果有讲的不准确的地方咱们再讨论,作者大佬看下是否需要优化、修复