diff --git a/src/part_file.cpp b/src/part_file.cpp index 865ff1f31..55044f9c0 100644 --- a/src/part_file.cpp +++ b/src/part_file.cpp @@ -262,7 +262,7 @@ namespace libtorrent { // we're only supposed to move part files from a fence job. i.e. no other // disk jobs are supposed to be in-flight at this point - TORRENT_ASSERT(!m_file || m_file.unique()); + TORRENT_ASSERT(!m_file || m_file.use_count() == 1); m_file.reset(); if (!m_piece_map.empty()) diff --git a/src/session.cpp b/src/session.cpp index 247826ec2..fb84b251c 100644 --- a/src/session.cpp +++ b/src/session.cpp @@ -393,7 +393,7 @@ namespace { // to keep the session_impl alive m_impl->call_abort(); - if (m_thread && m_thread.unique()) + if (m_thread && m_thread.use_count() == 1) { #if defined TORRENT_ASIO_DEBUGGING wait_for_asio_handlers(); @@ -424,7 +424,7 @@ namespace { session_proxy& session_proxy::operator=(session_proxy&&) noexcept = default; session_proxy::~session_proxy() { - if (m_thread && m_thread.unique()) + if (m_thread && m_thread.use_count() == 1) { #if defined TORRENT_ASIO_DEBUGGING wait_for_asio_handlers(); diff --git a/src/session_impl.cpp b/src/session_impl.cpp index 3746e13f7..1abcdbdb2 100644 --- a/src/session_impl.cpp +++ b/src/session_impl.cpp @@ -3153,7 +3153,7 @@ namespace aux { if (!m_undead_peers.empty()) { auto const remove_it = std::remove_if(m_undead_peers.begin(), m_undead_peers.end() - , std::bind(&std::shared_ptr::unique, _1)); + , [](std::shared_ptr& ptr) { return ptr.use_count() == 1; }); m_undead_peers.erase(remove_it, m_undead_peers.end()); if (m_undead_peers.empty()) {