我在循环中执行以下代码,该循环具有异常处理。
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&gt;'的实例后终止调用 what():boost thread:尝试加入自身:避免资源死锁
我似乎无法捕捉到这个错误。此代码24/7执行状态检查,因此很可能找到网络错误的时间。最糟糕的是,它可能在1,2,3或第4次尝试后失败。我真的想避免使用套接字自己实现HTTP协议套接字,但我可能需要。有什么想法吗?
答案 0 :(得分:0)
库的作者发现解决方案是使用相同的客户端实例,而不是每次都创建/销毁它