Merge pull request #10906

146f801 epee: avoid bad_weak_ptr during connection teardown (selsta)

ACKs: vtnerd, SChernykh
This commit is contained in:
tobtoht
2026-07-20 09:01:32 +00:00
@@ -1219,16 +1219,13 @@ namespace net_utils
template<typename T>
bool connection<T>::add_ref()
{
try {
auto self = connection<T>::shared_from_this();
std::lock_guard<std::mutex> guard(m_state.lock);
this->self = std::move(self);
++m_state.protocol.reference_counter;
return true;
}
catch (boost::bad_weak_ptr &exception) {
auto self = connection<T>::weak_from_this().lock();
if (!self)
return false;
}
std::lock_guard<std::mutex> guard(m_state.lock);
this->self = std::move(self);
++m_state.protocol.reference_counter;
return true;
}
template<typename T>