Author: astitcher
Date: Tue Aug 11 05:34:59 2009
New Revision: 802990

URL: http://svn.apache.org/viewvc?rev=802990&view=rev
Log:
Fix for re-entering DispatchHandle::processEvent more than once on disconnection

Modified:
    qpid/trunk/qpid/cpp/src/qpid/sys/DispatchHandle.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/DispatchHandle.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/DispatchHandle.cpp?rev=802990&r1=802989&r2=802990&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/DispatchHandle.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/DispatchHandle.cpp Tue Aug 11 05:34:59 2009
@@ -284,10 +284,7 @@
         readableCallback(*this);
         writableCallback(*this);
         break;
-    case Poller::DISCONNECTED: {
-        ScopedLock<Mutex> lock(stateLock);
-        poller->unmonitorHandle(*this, Poller::INOUT);
-        }
+    case Poller::DISCONNECTED:
         if (disconnectedCallback) {
             disconnectedCallback(*this);
         }

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp?rev=802990&r1=802989&r2=802990&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp Tue Aug 11 05:34:59 
2009
@@ -575,6 +575,8 @@
                 // (just not writable), allow us to readable until we get here 
again
                 if (epe.events & ::EPOLLHUP) {
                     if (eh.isHungup()) {
+                        // Don't set up last Handle so that we don't reset 
this handle
+                        // when we get back in here
                         return Event(handle, DISCONNECTED);
                     }
                     eh.setHungup();



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to