diff options
Diffstat (limited to 'cpp/src/IceGrid/NodeCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/NodeCache.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/NodeCache.cpp b/cpp/src/IceGrid/NodeCache.cpp index 584efdc9e19..c3022bf0c9a 100644 --- a/cpp/src/IceGrid/NodeCache.cpp +++ b/cpp/src/IceGrid/NodeCache.cpp @@ -159,6 +159,15 @@ NodeCache::NodeCache(int sessionTimeout) : _sessionTimeout(sessionTimeout) { } +void +NodeCache::destroy() +{ + for(map<string, NodeEntryPtr>::const_iterator p = _entries.begin(); p != _entries.end(); ++p) + { + p->second->setSession(0); // Break cyclic reference count. + } +} + NodeEntryPtr NodeCache::get(const string& name, bool create) const { |