From b6a73eeaaac9b609b2bac21d746b303e4e776898 Mon Sep 17 00:00:00 2001 From: arvidn Date: Sat, 11 Nov 2017 16:45:27 +0100 Subject: [PATCH] simplify trigger_unchoke and trigger_optimistic_unchoke on session_impl, abd make them noexcept --- include/libtorrent/aux_/session_impl.hpp | 4 ++-- include/libtorrent/aux_/session_interface.hpp | 4 ++-- include/libtorrent/invariant_check.hpp | 4 ++-- include/libtorrent/torrent.hpp | 4 ++-- src/torrent.cpp | 10 ++++------ 5 files changed, 12 insertions(+), 14 deletions(-) diff --git a/include/libtorrent/aux_/session_impl.hpp b/include/libtorrent/aux_/session_impl.hpp index 1808d69f4..548234f5a 100644 --- a/include/libtorrent/aux_/session_impl.hpp +++ b/include/libtorrent/aux_/session_impl.hpp @@ -549,12 +549,12 @@ namespace aux { int peak_up_rate() const { return m_peak_up_rate; } - void trigger_unchoke() override + void trigger_unchoke() noexcept override { TORRENT_ASSERT(is_single_thread()); m_unchoke_time_scaler = 0; } - void trigger_optimistic_unchoke() override + void trigger_optimistic_unchoke() noexcept override { TORRENT_ASSERT(is_single_thread()); m_optimistic_unchoke_time_scaler = 0; diff --git a/include/libtorrent/aux_/session_interface.hpp b/include/libtorrent/aux_/session_interface.hpp index b11f10503..157a9e127 100644 --- a/include/libtorrent/aux_/session_interface.hpp +++ b/include/libtorrent/aux_/session_interface.hpp @@ -186,8 +186,8 @@ namespace libtorrent { namespace aux { virtual bool is_aborted() const = 0; virtual int num_uploads() const = 0; virtual bool preemptive_unchoke() const = 0; - virtual void trigger_optimistic_unchoke() = 0; - virtual void trigger_unchoke() = 0; + virtual void trigger_optimistic_unchoke() noexcept = 0; + virtual void trigger_unchoke() noexcept = 0; virtual std::weak_ptr find_torrent(sha1_hash const& info_hash) const = 0; virtual std::weak_ptr find_disconnect_candidate_torrent() const = 0; diff --git a/include/libtorrent/invariant_check.hpp b/include/libtorrent/invariant_check.hpp index 6d3e43de6..861e336be 100644 --- a/include/libtorrent/invariant_check.hpp +++ b/include/libtorrent/invariant_check.hpp @@ -33,12 +33,12 @@ namespace libtorrent { } catch (std::exception const& err) { - std::fprintf(stderr, "invariant_check failed with exception: %s" + std::fprintf(stderr, "invariant_check failed with exception: %s\n" , err.what()); } catch (...) { - std::fprintf(stderr, "invariant_check failed with exception"); + std::fprintf(stderr, "invariant_check failed with exception\n"); } #else invariant_access::check_invariant(x); diff --git a/include/libtorrent/torrent.hpp b/include/libtorrent/torrent.hpp index 4c21dd4d7..eee85e25d 100644 --- a/include/libtorrent/torrent.hpp +++ b/include/libtorrent/torrent.hpp @@ -642,8 +642,8 @@ namespace libtorrent { bool choke_peer(peer_connection& c); bool unchoke_peer(peer_connection& c, bool optimistic = false); - void trigger_unchoke(); - void trigger_optimistic_unchoke(); + void trigger_unchoke() noexcept; + void trigger_optimistic_unchoke() noexcept; // used by peer_connection to attach itself to a torrent // since incoming connections don't know what torrent diff --git a/src/torrent.cpp b/src/torrent.cpp index dbe92ad42..8a8658ebc 100644 --- a/src/torrent.cpp +++ b/src/torrent.cpp @@ -5296,16 +5296,14 @@ namespace libtorrent { return true; } - void torrent::trigger_unchoke() + void torrent::trigger_unchoke() noexcept { - m_ses.get_io_service().dispatch(std::bind( - &aux::session_interface::trigger_unchoke, std::ref(m_ses))); + m_ses.trigger_unchoke(); } - void torrent::trigger_optimistic_unchoke() + void torrent::trigger_optimistic_unchoke() noexcept { - m_ses.get_io_service().dispatch(std::bind( - &aux::session_interface::trigger_optimistic_unchoke, std::ref(m_ses))); + m_ses.trigger_optimistic_unchoke(); } void torrent::cancel_block(piece_block block)