【发布时间】:2014-11-18 18:45:53
【问题描述】:
需要对此进行澄清。
这是否意味着同一个 io_service 对象上的任何未决操作都将被取消?如果是这样,如何使用具有多个套接字的 io_service 对象。我有一个带有多个套接字的应用程序,其中任意数量的套接字都可能有一个挂起的异步读取。如果我想在 ssl 握手操作期间在一个套接字上使用计时器,它将取消所有挂起的读取...如何处理这种情况?
【问题讨论】:
-
“boost deadline_timer 取消挂起的异步操作”——你为什么这么认为?
-
你的意思是
deadline_timer::cancel()成员函数吗?它仅取消与计时器相关的异步操作(由async_wait发出)。 -
这是 boost 文档所说的:此函数设置到期时间。任何挂起的异步等待操作都将被取消。每个取消操作的处理程序将使用 boost::asio::error::operation_aborted 错误代码调用。