关于hp-socket的IocpServer
@伤神小怪兽 你好,想跟你请教个问题:
您好。我在阅读您的hp-socket代码,关于IocpServer,有个疑问想请教一下。
假设某connection的receive过来了,然后线程1处理该receive;在处理的过程中,该connection的另一个receive又过来了,线程2处理了该receive,但是发生了错误,于是connection在handleError中会被close掉;但此时,线程1还正在处理该connection的receive,这有可能会出现问题:因为对应TSocketObj与TBufferObj都被释放掉了(尽管有可能仅仅时放入了freelist中,因为如果freelist只有一个obj的话,又可能会被接下来的connection用掉,导致两个connection公用的问题)。
请问IocpServer对上述的情况作了处理吗?我读代码没有发现。谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在实际的运行中发现是有可能的。 还是 你的意思是要自己对同一个socket的receive作同步?但是这样做的话 会影响到并发效率吧。比如 某个connection的reveive操作比较长
回复
那就要从其它方面解决,例如把业务处理操作放到其它线程。
一个socket不可能同时处理两个以上 OnReceive