summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/SessionImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/client/SessionImpl.cpp')
-rw-r--r--cpp/src/qpid/client/SessionImpl.cpp14
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);
}