From 58d5b9aedcac646fc7f5144b122b77dce0026141 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Mon, 12 Nov 2012 06:08:06 +0000 Subject: [PATCH] merged alert fix from libtorrent_aio --- src/alert.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/alert.cpp b/src/alert.cpp index 34a667e53..7dac35588 100644 --- a/src/alert.cpp +++ b/src/alert.cpp @@ -408,13 +408,8 @@ namespace libtorrent { void alert_manager::post_alert_ptr(alert* alert_) { std::auto_ptr a(alert_); - mutex::scoped_lock lock(m_mutex); - - post_impl(a); #ifndef TORRENT_DISABLE_EXTENSIONS - lock.unlock(); - for (ses_extension_list_t::iterator i = m_ses_extensions.begin() , end(m_ses_extensions.end()); i != end; ++i) { @@ -424,18 +419,15 @@ namespace libtorrent { } #endif + mutex::scoped_lock lock(m_mutex); + post_impl(a); } void alert_manager::post_alert(const alert& alert_) { std::auto_ptr a(alert_.clone()); - mutex::scoped_lock lock(m_mutex); - - post_impl(a); #ifndef TORRENT_DISABLE_EXTENSIONS - lock.unlock(); - for (ses_extension_list_t::iterator i = m_ses_extensions.begin() , end(m_ses_extensions.end()); i != end; ++i) { @@ -445,6 +437,8 @@ namespace libtorrent { } #endif + mutex::scoped_lock lock(m_mutex); + post_impl(a); } void alert_manager::post_impl(std::auto_ptr& alert_)