Author: shuston
Date: Tue Jan 13 14:41:08 2009
New Revision: 734265

URL: http://svn.apache.org/viewvc?rev=734265&view=rev
Log:
Move dispatcher code from iocpDispatcher.cpp (no longer needed) to 
IocpPoller.cpp (run); mirrors migration introduced on Linux side

Removed:
    qpid/trunk/qpid/cpp/src/qpid/sys/windows/IocpDispatcher.cpp
Modified:
    qpid/trunk/qpid/cpp/src/Makefile.am
    qpid/trunk/qpid/cpp/src/common.vcproj
    qpid/trunk/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp

Modified: qpid/trunk/qpid/cpp/src/Makefile.am
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/Makefile.am?rev=734265&r1=734264&r2=734265&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/Makefile.am (original)
+++ qpid/trunk/qpid/cpp/src/Makefile.am Tue Jan 13 14:41:08 2009
@@ -38,7 +38,6 @@
   qpid/sys/windows/Condition.h \
   qpid/sys/windows/FileSysDir.cpp \
   qpid/sys/windows/IntegerTypes.h \
-  qpid/sys/windows/IocpDispatcher.cpp \
   qpid/sys/windows/IocpPoller.cpp \
   qpid/sys/windows/IOHandle.cpp \
   qpid/sys/windows/IoHandlePrivate.h \

Modified: qpid/trunk/qpid/cpp/src/common.vcproj
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/common.vcproj?rev=734265&r1=734264&r2=734265&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/common.vcproj (original)
+++ qpid/trunk/qpid/cpp/src/common.vcproj Tue Jan 13 14:41:08 2009
@@ -930,6 +930,9 @@
                                RelativePath="qpid\sys\AsynchIOHandler.cpp">
                        </File>
                        <File
+                               RelativePath="qpid\sys\Dispatcher.cpp">
+                       </File>
+                       <File
                                RelativePath="qpid\sys\PollableCondition.h">
                        </File>
                        <File
@@ -942,13 +945,13 @@
                                RelativePath="qpid\sys\Shlib.cpp">
                        </File>
                        <File
-                               RelativePath="qpid\sys\windows\AsynchIO.cpp">
+                               RelativePath="qpid\sys\Timer.cpp">
                        </File>
                        <File
-                               RelativePath="qpid\sys\windows\FileSysDir.cpp">
+                               RelativePath="qpid\sys\windows\AsynchIO.cpp">
                        </File>
                        <File
-                               
RelativePath="qpid\sys\windows\IocpDispatcher.cpp">
+                               RelativePath="qpid\sys\windows\FileSysDir.cpp">
                        </File>
                        <File
                                RelativePath="qpid\sys\windows\IocpPoller.cpp">
@@ -1834,6 +1837,9 @@
                                RelativePath="qpid\sys\TimeoutHandler.h">
                        </File>
                        <File
+                               RelativePath="qpid\sys\Timer.h">
+                       </File>
+                       <File
                                RelativePath="qpid\sys\uuid.h">
                        </File>
                        <File

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp?rev=734265&r1=734264&r2=734265&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp Tue Jan 13 14:41:08 
2009
@@ -105,9 +105,21 @@
 }
 
 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) {


Reply via email to