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();