You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2010/10/12 18:04:06 UTC

svn commit: r1021815 - /qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp

Author: astitcher
Date: Tue Oct 12 16:04:06 2010
New Revision: 1021815

URL: http://svn.apache.org/viewvc?rev=1021815&view=rev
Log:
Fix Rdma test server so that you can interrupt it again (since making
Poller run loop impervious to signals)

Modified:
    qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp?rev=1021815&r1=1021814&r2=1021815&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp Tue Oct 12 16:04:06 2010
@@ -18,6 +18,7 @@
  * under the License.
  *
  */
+#include "qpid/sys/Thread.h"
 #include "qpid/sys/rdma/RdmaIO.h"
 #include "qpid/sys/rdma/rdma_exception.h"
 
@@ -36,9 +37,9 @@ using std::string;
 using std::cout;
 using std::cerr;
 
+using qpid::sys::Thread;
 using qpid::sys::SocketAddress;
 using qpid::sys::Poller;
-using qpid::sys::Dispatcher;
 
 // All the accepted connections
 namespace qpid {
@@ -179,7 +180,6 @@ int main(int argc, char* argv[]) {
 
     try {
         boost::shared_ptr<Poller> p(new Poller());
-        Dispatcher d(p);
 
         Rdma::Listener a(
             Rdma::ConnectionParams(16384, Rdma::DEFAULT_WR_ENTRIES),
@@ -191,7 +191,13 @@ int main(int argc, char* argv[]) {
 
         SocketAddress sa("", port);
         a.start(p, sa);
-        d.run();
+
+        // The poller loop blocks all signals so run in its own thread
+        Thread t(*p);
+
+        ::pause();
+        p->shutdown();
+        t.join();
     } catch (Rdma::Exception& e) {
         int err = e.getError();
         cerr << "Error: " << e.what() << "(" << err << ")\n";



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org