以下是boost官方http服务器示例的一部分:
中的connection_manager :: stop_all方法
void connection_manager::stop_all()
{
std::for_each(connections_.begin(), connections_.end(),
boost::bind(&connection::stop, _1));
connections_.clear();
}
{p <3}} 中的connection :: stop方法
void connection::stop()
{
socket_.close();
}
connection_manager::stop_all
方法是
从连接对象列表调用每个connection::stop
方法并销毁所有连接对象。
connection::stop
方法正在关闭套接字,socket::close()
方法将使用operation_aborted错误调用connection::handle_read
或connection::handle_write
处理程序。
右?
然后,如果“连接对象已经被破坏后调用处理程序”的情况怎么办?
我认为这种情况会导致一些意想不到的错误......不是吗? (以及如何处理这种情况?)