summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/windows/IocpPoller.cpp
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2009-01-13 22:41:08 +0000
committerStephen D. Huston <shuston@apache.org>2009-01-13 22:41:08 +0000
commit107bb9c248a09ce56bae63dc8c8ddcbd27d0141a (patch)
tree949274be2d34cc8b963f9357d93ac07831a0fc7b /cpp/src/qpid/sys/windows/IocpPoller.cpp
parent729e8dfff5d888d85c8d8c4201fa956378f4b917 (diff)
downloadqpid-python-107bb9c248a09ce56bae63dc8c8ddcbd27d0141a.tar.gz
Move dispatcher code from iocpDispatcher.cpp (no longer needed) to IocpPoller.cpp (run); mirrors migration introduced on Linux side
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@734265 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys/windows/IocpPoller.cpp')
-rwxr-xr-xcpp/src/qpid/sys/windows/IocpPoller.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/cpp/src/qpid/sys/windows/IocpPoller.cpp b/cpp/src/qpid/sys/windows/IocpPoller.cpp
index 1e24adfb46..3760c26c00 100755
--- a/cpp/src/qpid/sys/windows/IocpPoller.cpp
+++ b/cpp/src/qpid/sys/windows/IocpPoller.cpp
@@ -105,9 +105,21 @@ bool Poller::interrupt(PollerHandle&) {
}
void Poller::run() {
- Poller::shared_ptr p(this);
- qpid::sys::Dispatcher d(p);
- d.run();
+ do {
+ Poller::Event event = this->wait();
+
+ // Handle shutdown
+ switch (event.type) {
+ case Poller::SHUTDOWN:
+ return;
+ break;
+ case Poller::INVALID: // On any type of success or fail completion
+ break;
+ default:
+ // This should be impossible
+ assert(false);
+ }
+ } while (true);
}
void Poller::addFd(PollerHandle& handle, Direction dir) {