forked from premiere/premiere-libtorrent
added asserts to try to catch #84
This commit is contained in:
parent
1acedb39dc
commit
cf35ec6d9c
|
@ -88,6 +88,9 @@ private:
|
||||||
int m_half_open_limit;
|
int m_half_open_limit;
|
||||||
|
|
||||||
deadline_timer m_timer;
|
deadline_timer m_timer;
|
||||||
|
#ifndef NDEBUG
|
||||||
|
bool m_in_timeout_function;
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,9 @@ namespace libtorrent
|
||||||
, m_num_connecting(0)
|
, m_num_connecting(0)
|
||||||
, m_half_open_limit(0)
|
, m_half_open_limit(0)
|
||||||
, m_timer(ios)
|
, m_timer(ios)
|
||||||
|
#ifndef NDEBUG
|
||||||
|
, m_in_timeout_function(false)
|
||||||
|
#endif
|
||||||
{}
|
{}
|
||||||
|
|
||||||
bool connection_queue::free_slots() const
|
bool connection_queue::free_slots() const
|
||||||
|
@ -133,9 +136,22 @@ namespace libtorrent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
struct function_guard
|
||||||
|
{
|
||||||
|
function_guard(bool& v): val(v) { assert(!val); val = true; }
|
||||||
|
~function_guard() { val = false; }
|
||||||
|
|
||||||
|
bool& val;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
void connection_queue::on_timeout(asio::error_code const& e)
|
void connection_queue::on_timeout(asio::error_code const& e)
|
||||||
{
|
{
|
||||||
INVARIANT_CHECK;
|
INVARIANT_CHECK;
|
||||||
|
#ifndef NDEBUG
|
||||||
|
function_guard guard_(m_in_timeout_function);
|
||||||
|
#endif
|
||||||
|
|
||||||
assert(!e || e == asio::error::operation_aborted);
|
assert(!e || e == asio::error::operation_aborted);
|
||||||
if (e) return;
|
if (e) return;
|
||||||
|
|
Loading…
Reference in New Issue