Exemple #1
0
	void alert_manager::post_alert_ptr(alert* alert_)
	{
		std::auto_ptr<alert> a(alert_);
		mutex::scoped_lock lock(m_mutex);

		post_impl(a);
	}
	void alert_manager::post_alert(const alert& alert_)
	{
		std::auto_ptr<alert> a(alert_.clone());

#ifndef TORRENT_DISABLE_EXTENSIONS
		for (ses_extension_list_t::iterator i = m_ses_extensions.begin()
			, end(m_ses_extensions.end()); i != end; ++i)
		{
			TORRENT_TRY {
				(*i)->on_alert(&alert_);
			} TORRENT_CATCH(std::exception&) {}
		}
#endif

		mutex::scoped_lock lock(m_mutex);
		post_impl(a, lock);
	}