关于hp-socket的IocpServer

发布于 2021-11-21 17:00:15 字数 521 浏览 983 评论 3

@伤神小怪兽 你好,想跟你请教个问题:

您好。我在阅读您的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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

悟红尘 2021-11-22 21:09:38

我在实际的运行中发现是有可能的。 还是 你的意思是要自己对同一个socket的receive作同步?但是这样做的话 会影响到并发效率吧。比如 某个connection的reveive操作比较长

谢绝鈎搭 2021-11-22 14:23:05

回复
那就要从其它方面解决,例如把业务处理操作放到其它线程。

坐在坟头思考人生 2021-11-22 04:31:04

一个socket不可能同时处理两个以上 OnReceive

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文