Author: astitcher Date: Tue Aug 11 05:35:05 2009 New Revision: 802991 URL: http://svn.apache.org/viewvc?rev=802991&view=rev Log: Ensure that a PollerHandle that has had a disconnected event can never be returned with any more events
Modified: qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp 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=802991&r1=802990&r2=802991&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:35:05 2009 @@ -575,8 +575,11 @@ // (just not writable), allow us to readable until we get here again if (epe.events & ::EPOLLHUP) { if (eh.isHungup()) { + eh.setInactive(); // Don't set up last Handle so that we don't reset this handle - // when we get back in here + // on re-entering Poller::wait. This means that we will never + // be set active again once we've returned disconnected, and so + // can never be returned again. return Event(handle, DISCONNECTED); } eh.setHungup(); --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org