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); zmq_assert (token == rx_timer_id);
// Timer cancels on return by poller_base.
has_rx_timer = false;
in_event (); in_event ();
} }

View File

@@ -188,11 +188,15 @@ void zmq::pgm_sender_t::out_event ()
void zmq::pgm_sender_t::timer_event (int token) 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 (); in_event ();
} else if (token == tx_timer_id) {
zmq_assert (token == tx_timer_id); has_tx_timer = false;
out_event (); out_event ();
} else
zmq_assert (false);
} }
#endif #endif