cloudwu / skynet

A lightweight online game framework
MIT License
13.26k stars 4.19k forks source link

fix socketchannel mem leakage #1921

Closed huahua132 closed 4 months ago

huahua132 commented 4 months ago

auth认证失败时,会主动调用close_channel_socket,但是pop_response的携程并没有唤醒退出,导致内存泄漏。

修复前: QQ图片20240517111511 调试打印没有到over,也就是dispatch_by_order函数结束的地方。

QQ图片20240517111746 弱引用表关联的channel对象会一直涨,说明没有释放(主动调用gc也不行)。

修复后: QQ图片20240517111532 dispatch_by_order函数执行完了。

QQ图片20240517111700 QQ图片20240517111705

调用gc后,弱引用表对象减少了,说明释放了。