From e11f8234114b277a9246f7935a65cfefc432492c Mon Sep 17 00:00:00 2001
From: Steven McCoy <steven.mccoy@miru.hk>
Date: Fri, 8 Oct 2010 21:54:52 +0800
Subject: [PATCH 2/3] Assume timers canceled on timer events.


Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
---
 src/pgm_receiver.cpp |    2 ++
 src/pgm_sender.cpp   |    6 +++++-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/pgm_receiver.cpp b/src/pgm_receiver.cpp
index 01b95b2..ecc509c 100644
--- a/src/pgm_receiver.cpp
+++ b/src/pgm_receiver.cpp
@@ -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 ();
 }
 
diff --git a/src/pgm_sender.cpp b/src/pgm_sender.cpp
index 82a37ab..a406681 100644
--- a/src/pgm_sender.cpp
+++ b/src/pgm_sender.cpp
@@ -188,10 +188,14 @@ 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);
+    has_tx_timer = false;
     out_event ();
 }
 
-- 
1.7.0

