From 7468205a61d65aeff8a4bf7dcb87f0e5a4619949 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Wed, 13 Jul 2011 09:52:35 +0000 Subject: QPID-3355: Ensure session is not deleted out from under a sync() call git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1145935 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'cpp/src') diff --git a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp index 787be7de2a..e6255dcd6f 100644 --- a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp @@ -432,8 +432,11 @@ uint32_t SessionImpl::getUnsettledAcksImpl(const std::string* destination) void SessionImpl::syncImpl(bool block) { - if (block) session.sync(); - else session.flush(); + { + ScopedLock l(lock); + if (block) session.sync(); + else session.flush(); + } //cleanup unconfirmed accept records: incoming.pendingAccept(); } -- cgit v1.2.1