You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by sh...@apache.org on 2009/01/13 23:41:09 UTC

svn commit: r734265 - in /qpid/trunk/qpid/cpp/src: Makefile.am common.vcproj qpid/sys/windows/IocpDispatcher.cpp qpid/sys/windows/IocpPoller.cpp

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) {