【发布时间】:2013-11-12 21:05:13
【问题描述】:
我已经使用 boost::asio 库实现了客户端服务器程序。 在我的实现中,有时 io_service.run() 会无限期地阻塞。如果我向 io_service 传递另一个请求,则被阻止的调用开始正常执行。
有什么方法可以查看 io_service 队列中的待处理请求是什么?
我没有使用工作对象来阻止运行调用!
【问题讨论】:
-
我不知道。在不知道自己在做什么的情况下,很难找出是什么阻碍了你。你分叉了你的应用程序吗?您的任何处理程序都没有返回吗?没有取消deadline_timer?如果你找不到任何东西,你总是可以使用多个 io_service。也许每个插座一个,这样你就可以追捕有问题的电话。当您相信一切都已完成时,您也可以
stop您的 io_service。或者您只需取消处理程序中的所有其他异步操作并在需要时重新启动它们。或者不要run,而是poll,这样你就可以控制什么时候发生。
标签: boost-asio