From dda1aa80a4fa0ddc72057881e21276197b3d344e Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Tue, 6 Jul 2010 17:27:58 +0000 Subject: 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 --- cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cpp/src/qpid/client') 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)); -- cgit v1.2.1