Fix assertion in PGM transports on cancel_timer

Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
This commit is contained in:
Steven McCoy 2010-10-11 17:59:58 +02:00 committed by Martin Sustrik
parent e168173162
commit 5b8af52efc
2 changed files with 10 additions and 4 deletions

View File

@ -235,6 +235,8 @@ void zmq::pgm_receiver_t::timer_event (int token)
{
zmq_assert (token == rx_timer_id);
// Timer cancels on return by poller_base.
has_rx_timer = false;
in_event ();
}

View File

@ -188,11 +188,15 @@ void zmq::pgm_sender_t::out_event ()
void zmq::pgm_sender_t::timer_event (int token)
{
if (token == rx_timer_id)
// Timer cancels on return by poller_base.
if (token == rx_timer_id) {
has_rx_timer = false;
in_event ();
zmq_assert (token == tx_timer_id);
out_event ();
} else if (token == tx_timer_id) {
has_tx_timer = false;
out_event ();
} else
zmq_assert (false);
}
#endif