summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp3
-rw-r--r--qpid/cpp/src/tests/brokertest.py2
-rwxr-xr-xqpid/cpp/src/tests/ha_test.py6
3 files changed, 7 insertions, 4 deletions
diff --git a/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp b/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp
index df9fd7cdb1..6a916d3f84 100644
--- a/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp
+++ b/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp
@@ -141,10 +141,11 @@ void PrimaryTxObserver::deduplicate(sys::Mutex::ScopedLock&) {
bool PrimaryTxObserver::prepare() {
sys::Mutex::ScopedLock l(lock);
- // FIXME aconway 2013-07-23: WRONG blocking. Need async completion.
QPID_LOG(debug, logPrefix << "Prepare");
deduplicate(l);
txQueue->deliver(TxPrepareEvent().message());
+ // TODO aconway 2013-09-04: Blocks the current thread till backups respond.
+ // Need a non-blocking approach (e.g. async completion or borrowing a thread)
while (!unprepared.empty() && !failed) lock.wait();
return !failed;
}
diff --git a/qpid/cpp/src/tests/brokertest.py b/qpid/cpp/src/tests/brokertest.py
index a282f59b13..ba6c259a26 100644
--- a/qpid/cpp/src/tests/brokertest.py
+++ b/qpid/cpp/src/tests/brokertest.py
@@ -370,7 +370,7 @@ class Broker(Popen):
deadline = time.time()+timeout
while True:
try:
- c = self.connect(**kwargs)
+ c = self.connect(timeout=timeout, **kwargs)
try:
c.session()
return # All good
diff --git a/qpid/cpp/src/tests/ha_test.py b/qpid/cpp/src/tests/ha_test.py
index 4a7b538edd..5f21b8f8a4 100755
--- a/qpid/cpp/src/tests/ha_test.py
+++ b/qpid/cpp/src/tests/ha_test.py
@@ -271,8 +271,10 @@ acl allow all all
try: return self.connect()
except ConnectionError: return None
- def ready(self):
- return Broker.ready(self, client_properties={"qpid.ha-admin":1})
+ def ready(self, *args, **kwargs):
+ if not 'client_properties' in kwargs: kwargs['client_properties'] = {}
+ kwargs['client_properties']['qpid.ha-admin'] = True
+ return Broker.ready(self, *args, **kwargs)
def kill(self, final=True):
if final: self.ha_port.stop()