diff options
| author | Andrew Stitcher <astitcher@apache.org> | 2010-12-23 17:10:24 +0000 |
|---|---|---|
| committer | Andrew Stitcher <astitcher@apache.org> | 2010-12-23 17:10:24 +0000 |
| commit | 2249e649bfe1e822f9a7dc3638463ad27ac4bf73 (patch) | |
| tree | 93b80f06b029ec8705b3960fb8561a5de555a219 /cpp/src/qpid | |
| parent | e5df95069aa02cd841aab885ae1352c5fd1fa246 (diff) | |
| download | qpid-python-2249e649bfe1e822f9a7dc3638463ad27ac4bf73.tar.gz | |
Allow RdmaClient to be interrupted
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052318 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid')
| -rw-r--r-- | cpp/src/qpid/sys/rdma/RdmaClient.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/cpp/src/qpid/sys/rdma/RdmaClient.cpp b/cpp/src/qpid/sys/rdma/RdmaClient.cpp index d33c609344..579a1d0e4b 100644 --- a/cpp/src/qpid/sys/rdma/RdmaClient.cpp +++ b/cpp/src/qpid/sys/rdma/RdmaClient.cpp @@ -21,6 +21,7 @@ #include "qpid/sys/rdma/RdmaIO.h" #include "qpid/sys/rdma/rdma_exception.h" #include "qpid/sys/Time.h" +#include "qpid/sys/Thread.h" #include <netdb.h> #include <arpa/inet.h> @@ -39,6 +40,7 @@ using std::cerr; using std::copy; using std::rand; +using qpid::sys::Thread; using qpid::sys::Poller; using qpid::sys::Dispatcher; using qpid::sys::SocketAddress; @@ -173,7 +175,6 @@ int main(int argc, char* argv[]) { try { boost::shared_ptr<Poller> p(new Poller()); - Dispatcher d(p); Rdma::Connector c( Rdma::ConnectionParams(msgsize, Rdma::DEFAULT_WR_ENTRIES), @@ -185,7 +186,10 @@ int main(int argc, char* argv[]) { SocketAddress sa(host, port); cout << "Connecting to: " << sa.asString() <<"\n"; c.start(p, sa); - d.run(); + + // The poller loop blocks all signals so run in its own thread + Thread t(*p); + t.join(); } catch (Rdma::Exception& e) { int err = e.getError(); cerr << "Error: " << e.what() << "(" << err << ")\n"; |
