summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/Poller.h
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2009-05-04 15:55:21 +0000
committerAndrew Stitcher <astitcher@apache.org>2009-05-04 15:55:21 +0000
commit564d179640cf49feeb8ff84133f892499afb0e65 (patch)
treed6fb4c2f2c789379937c2b622772cea2aed69e1d /cpp/src/qpid/sys/Poller.h
parentc912884c11debf57e8c154fba7dbbcae8ea34d90 (diff)
downloadqpid-python-564d179640cf49feeb8ff84133f892499afb0e65.tar.gz
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
Diffstat (limited to 'cpp/src/qpid/sys/Poller.h')
-rw-r--r--cpp/src/qpid/sys/Poller.h9
1 files changed, 5 insertions, 4 deletions
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;