Allenxuxu / gev

🚀Gev is a lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.
MIT License
1.73k stars 194 forks source link

请教一个问题,实在没看懂。 #122

Closed woshihuo12 closed 2 years ago

woshihuo12 commented 2 years ago

https://github.com/Allenxuxu/gev/blob/9262fa12b35a46747cf40ee5cd43efa9187adf85/connection.go#L230

这里如果不判断inBuffer是不是空,就只保留 else部分的代码 会有什么问题么? 这里没看懂为什么要单独对inBuffer是否为空特殊处理。

Allenxuxu commented 2 years ago

不会有问题,这里是优化,为了减少一次内存拷贝。

woshihuo12 commented 2 years ago

https://github.com/Allenxuxu/gev/blob/9262fa12b35a46747cf40ee5cd43efa9187adf85/connection.go#L236

那这里为什么只处理了first,没有处理end呢?

Allenxuxu commented 2 years ago

https://github.com/Allenxuxu/gev/blob/9262fa12b35a46747cf40ee5cd43efa9187adf85/connection.go#L236

那这里为什么只处理了first,没有处理end呢?

看看这个 c.buffer.WithData(buf[:n])

woshihuo12 commented 2 years ago

哦,进行了初始化,这时候必然没有end,明白了。