diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-11-10 14:34:52 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-11-10 14:34:52 +0000 |
commit | d8480f31455c708d0072a8d1a6a28f4b19bd647e (patch) | |
tree | 6d282b3fe4bf9ce7fe08c6da6b728f1f9912d76f /cpp/src/IceGrid/NodeSessionManager.cpp | |
parent | Filter out IPv6 addresses in getLocalHosts (diff) | |
download | ice-d8480f31455c708d0072a8d1a6a28f4b19bd647e.tar.bz2 ice-d8480f31455c708d0072a8d1a6a28f4b19bd647e.tar.xz ice-d8480f31455c708d0072a8d1a6a28f4b19bd647e.zip |
Memory leak fixes
Diffstat (limited to 'cpp/src/IceGrid/NodeSessionManager.cpp')
-rw-r--r-- | cpp/src/IceGrid/NodeSessionManager.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/cpp/src/IceGrid/NodeSessionManager.cpp b/cpp/src/IceGrid/NodeSessionManager.cpp index 71981be12fd..1bef61986af 100644 --- a/cpp/src/IceGrid/NodeSessionManager.cpp +++ b/cpp/src/IceGrid/NodeSessionManager.cpp @@ -140,14 +140,14 @@ NodeSessionKeepAliveThread::createSessionImpl(const InternalRegistryPrx& registr { timeout = IceUtil::Time::seconds(t / 2); } - _node->addObserver(_name, session->getObserver()); + _node->addObserver(session, session->getObserver()); return session; } void NodeSessionKeepAliveThread::destroySession(const NodeSessionPrx& session) { - _node->removeObserver(_name); + _node->removeObserver(session); try { @@ -185,6 +185,8 @@ NodeSessionKeepAliveThread::keepAlive(const NodeSessionPrx& session) } catch(const Ice::LocalException& ex) { + _node->removeObserver(session); + if(_node->getTraceLevels() && _node->getTraceLevels()->replica > 0) { Ice::Trace out(_node->getTraceLevels()->logger, _node->getTraceLevels()->replicaCat); @@ -343,6 +345,7 @@ NodeSessionManager::replicaRemoved(const InternalRegistryPrx& replica) } if(thread) { + _node->removeObserver(thread->getSession()); // Needs to be done here because we don't destroy the session. thread->terminate(false); // Don't destroy the session, the replica is being shutdown! thread->getThreadControl().join(); } |