diff options
Diffstat (limited to 'cpp/src/qpid/client/SessionImpl.cpp')
| -rw-r--r-- | cpp/src/qpid/client/SessionImpl.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/cpp/src/qpid/client/SessionImpl.cpp b/cpp/src/qpid/client/SessionImpl.cpp index 66e1b9e40f..7b8cae943f 100644 --- a/cpp/src/qpid/client/SessionImpl.cpp +++ b/cpp/src/qpid/client/SessionImpl.cpp @@ -69,12 +69,14 @@ SessionImpl::SessionImpl(const std::string& name, } SessionImpl::~SessionImpl() { - Lock l(state); - if (state != DETACHED) { - QPID_LOG(warning, "Detaching deleted session"); - setState(DETACHED); - handleClosed(); - state.waitWaiters(); + { + Lock l(state); + if (state != DETACHED) { + QPID_LOG(warning, "Detaching deleted session"); + setState(DETACHED); + handleClosed(); + state.waitWaiters(); + } } connection->erase(channel); } |
