diff options
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/broker/SessionManager.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/qpid/cpp/src/qpid/broker/SessionManager.cpp b/qpid/cpp/src/qpid/broker/SessionManager.cpp index a39cbab88a..7195e73ce5 100644 --- a/qpid/cpp/src/qpid/broker/SessionManager.cpp +++ b/qpid/cpp/src/qpid/broker/SessionManager.cpp @@ -69,12 +69,13 @@ void SessionManager::detach(std::auto_ptr<SessionState> session) { attached.erase(session->getId()); session->detach(); if (session->getTimeout() > 0) { - session->expiry = AbsTime(now(), session->getTimeout()*TIME_SEC); - if (session->mgmtObject != 0) - session->mgmtObject->set_expireTime (Duration::FromEpoch()+session->getTimeout()*TIME_SEC); + session->expiry = AbsTime(now(), session->getTimeout()*TIME_SEC); + if (session->mgmtObject != 0) { + session->mgmtObject->set_expireTime (Duration::FromEpoch()+session->getTimeout()*TIME_SEC); + } detached.push_back(session.release()); // In expiry order - eraseExpired(); -} + eraseExpired(); + } } void SessionManager::forget(const SessionId& id) { |
