From 564d179640cf49feeb8ff84133f892499afb0e65 Mon Sep 17 00:00:00 2001 From: Andrew Stitcher Date: Mon, 4 May 2009 15:55:21 +0000 Subject: Refactored the DispatchHandle/Poller code to remove a long standing set of race conditions. - Changed Poller naming for better clarity with new semantics. - Changed Poller semantics to avoid DispatchHandle keeping so much state - Changed Poller so that it will never re-enable a Handle until Poller::wait is called again on the same thread that returned the Handle. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@771338 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/sys/Poller.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'cpp/src/qpid/sys/Poller.h') diff --git a/cpp/src/qpid/sys/Poller.h b/cpp/src/qpid/sys/Poller.h index 825ad8bfed..fd45848b79 100644 --- a/cpp/src/qpid/sys/Poller.h +++ b/cpp/src/qpid/sys/Poller.h @@ -94,10 +94,10 @@ public: // Poller run loop QPID_COMMON_EXTERN void run(); - QPID_COMMON_EXTERN void addFd(PollerHandle& handle, Direction dir); - QPID_COMMON_EXTERN void delFd(PollerHandle& handle); - QPID_COMMON_EXTERN void modFd(PollerHandle& handle, Direction dir); - QPID_COMMON_EXTERN void rearmFd(PollerHandle& handle); + QPID_COMMON_EXTERN void registerHandle(PollerHandle& handle); + QPID_COMMON_EXTERN void unregisterHandle(PollerHandle& handle); + QPID_COMMON_EXTERN void monitorHandle(PollerHandle& handle, Direction dir); + QPID_COMMON_EXTERN void unmonitorHandle(PollerHandle& handle, Direction dir); QPID_COMMON_EXTERN Event wait(Duration timeout = TIME_INFINITE); }; @@ -108,6 +108,7 @@ class IOHandle; class PollerHandlePrivate; class PollerHandle { friend class Poller; + friend class PollerPrivate; friend struct Poller::Event; PollerHandlePrivate* const impl; -- cgit v1.2.1