0

我在具有异常处理的循环中执行以下代码。

 using namespace boost::network;
            http::client client;
            http::client::request request("https://testserver.com/");
            request << header("Connection", "close");
            http::client::response response = client.get(request);
            std::string strOutput = body(response);

代码运行良好,但是如果我禁用网络接口以测试我的软件以防网络故障,我会收到此错误,

在抛出 'boost::exception_detail::clone_impl >' 的实例后调用终止 what(): boost thread: 尝试加入自身: 避免资源死锁

我似乎无法捕捉到这个错误。此代码 24/7 执行状态检查,因此它很可能会找到出现网络错误的时间。最糟糕的是,它可能在第 1、2、3 次或第 4 次尝试后失败。我真的很想避免自己使用套接字实现 HTTP 协议套接字,但我可能需要这样做。有任何想法吗?

4

1 回答 1

0

库的作者发现解决方案是使用相同的客户端实例,而不是每次都创建/销毁它

于 2014-01-10T19:32:16.043 回答