Author: aconway
Date: Wed Nov  7 15:18:04 2007
New Revision: 592946

URL: http://svn.apache.org/viewvc?rev=592946&view=rev
Log:
Fix race condition in perftest.
NOTE: in multi-process mode you must run the publisher first and wait
for it to show "waiting for consumers" before starting consumers.

Modified:
    incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp?rev=592946&r1=592945&r2=592946&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp Wed Nov  7 15:18:04 
2007
@@ -71,15 +71,17 @@
 
 // Create and purge the shared queues 
 void setup() {
-    cout << "Create shared queues" << endl;
     Connection connection;
     opts.open(connection);
     Session_0_10 session = connection.newSession();
     session.setSynchronous(true); // Make sure this is all completed.
     session.queueDeclare(arg::queue="control"); // Control queue
-    session.queuePurge(arg::queue="control");
-    if (mode==SHARED) {
+    if (!opts.publish)
+        return;                 // Only do this in publish thread.
+    if (mode==SHARED) 
         session.queueDeclare(arg::queue="perftest"); // Shared data queue
+    if (opts.publish) { // Only do this in the publisher process.
+        session.queuePurge(arg::queue="control");
         session.queuePurge(arg::queue="perftest");
     }
     session.close();


Reply via email to