Closed tomatowithpotato closed 2 years ago
为了防止 stack overflow,因为 writeCompleteCallback_ 往往会再次调用 TcpConnection::send()。
如果直接调用 writeCompleteCallback_,有可能出现递归:
send("a") -> sendInLoop("a") -> writeCompleteCallback() -> send("b") -> sendInLoop("b") -> writeCompleteCallback() -> send("c") -> sendInLoop("c") -> writeCompleteCallback_() -> ...
我看handleRead函数里会在判断接收到数据后,直接执行回调函数messageCallback_
但是在handleWrite中,回调函数writeCompleteCallback_是交给queueInLoop来执行的
为什么会有这种区别呢?求大佬赐教!!!!