Code Monkey home page Code Monkey logo

Comments (5)

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

from zinx.

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

from zinx.

cokeboL avatar cokeboL commented on May 19, 2024
  1. Connection的SendMsg中,建议用select + default,避免chan满时导致应用层阻塞
c.msgChan <- msg //chan满时导致阻塞,比如3中的场景,应用层持续给这个连接SendMsg,满了,然后阻塞了,如果应用层是广播的逻辑后者任务池中发的这个包,其他模块就都被阻塞了,直到此连接其他情况退出时才恢复

from zinx.

cokeboL avatar cokeboL commented on May 19, 2024

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

from zinx.

aceld avatar aceld commented on May 19, 2024

非常感谢您的建议,我们会斟酌您的建议 修正之后合并到代码之中,如果您也想直接修复的话,也可以直接提交 Pull Request哈。

from zinx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.