diff options
author | Gordon Sim <gsim@apache.org> | 2011-07-13 09:52:35 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2011-07-13 09:52:35 +0000 |
commit | 7468205a61d65aeff8a4bf7dcb87f0e5a4619949 (patch) | |
tree | eb97ec657fc542251926d7998fd908665af1c348 /cpp/src | |
parent | 044ba5eba2479ac25f6b279563794c75db5d7119 (diff) | |
download | qpid-python-7468205a61d65aeff8a4bf7dcb87f0e5a4619949.tar.gz |
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
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
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(); } |