diff --git a/contrib/epee/include/net/abstract_tcp_server2.inl b/contrib/epee/include/net/abstract_tcp_server2.inl index c2f1eaf87..4373e0b37 100644 --- a/contrib/epee/include/net/abstract_tcp_server2.inl +++ b/contrib/epee/include/net/abstract_tcp_server2.inl @@ -1224,16 +1224,13 @@ namespace net_utils template bool connection::add_ref() { - try { - auto self = connection::shared_from_this(); - std::lock_guard 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::weak_from_this().lock(); + if (!self) return false; - } + std::lock_guard guard(m_state.lock); + this->self = std::move(self); + ++m_state.protocol.reference_counter; + return true; } template