是否保证boost::asio中async_*的处理程序将始终被调用

Is it guaranteed that handler of async_* in boost::asio will be always called?

本文关键字:程序 处理 调用 boost asio 是否 async      更新时间:2023-10-16

我在另一个线程中调用boost::asio::serial_port::async_write_some()和asio::io_service::run()。有一个回调给了"async_write_some"。我可以放心地假设,这个回调最终会被调用(可能带有一些错误代码)吗?在什么情况下这不是真的?

我可以放心地假设,这个回调最终会被调用(可能带有一些错误代码)吗?

我认为没有。

在什么情况下这不是真的?

io_service::stop方法在发送数据之前被调用。

只要io_service运行,就保证在异步操作完成后(无论成功与否)调用完成处理程序。