summaryrefslogtreecommitdiff
path: root/cpp/src/qpid
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2010-07-06 17:27:58 +0000
committerGordon Sim <gsim@apache.org>2010-07-06 17:27:58 +0000
commitdda1aa80a4fa0ddc72057881e21276197b3d344e (patch)
tree324dea0e36a43038556ff80c000216a2e5906da8 /cpp/src/qpid
parent35510d734264a82a5e477e826c3666e9fdbadc62 (diff)
downloadqpid-python-dda1aa80a4fa0ddc72057881e21276197b3d344e.tar.gz
QPID-664: Don't hold lock while waiting for incoming message in nextReceiver() call.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@960951 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid')
-rw-r--r--cpp/src/qpid/client/amqp0_10/SessionImpl.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
index a6067097bb..800c3269b9 100644
--- a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
+++ b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
@@ -323,11 +323,11 @@ bool SessionImpl::get(ReceiverImpl& receiver, qpid::messaging::Message& message,
bool SessionImpl::nextReceiver(qpid::messaging::Receiver& receiver, qpid::messaging::Duration timeout)
{
- qpid::sys::Mutex::ScopedLock l(lock);
while (true) {
try {
std::string destination;
if (incoming.getNextDestination(destination, adjust(timeout))) {
+ qpid::sys::Mutex::ScopedLock l(lock);
Receivers::const_iterator i = receivers.find(destination);
if (i == receivers.end()) {
throw qpid::messaging::ReceiverError(QPID_MSG("Received message for unknown destination " << destination));