我知道下一个async_write()应该在前一个完成时执行(有或没有错误,但是当它完成时)。
我想知道在进行 async_write() 调用时会发生什么,如果其中一个由于某种原因需要很长时间甚至永远不会结束(我假设这里没有像同步操作那样的超时)。这个操作什么时候会被认为失败?当操作系统最终在内部删除那个永无止境的操作时?也许,是否涉及超时并且我的假设是错误的?
我的意思是,写操作被发送到操作系统并且可能无限期地阻塞?所以处理程序永远不会被调用,并且下一个 async_write() 永远不会被调用。
注意:我假设我们在多个线程中调用 run()但写操作应该按顺序发送,所以我还假设写处理程序用strand包装。
感谢您的时间。