summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2009-01-07 19:37:17 +0100
committerBenoit Foucher <benoit@zeroc.com>2009-01-07 19:37:17 +0100
commitb5042ce24aaa2dcff2092046b322ff61c3d9ef8c (patch)
treedcdca6930377ad9098eeb9996ce1f7663c79e5db /cpp/src/IceGrid/NodeI.cpp
parentOther fix for 3601 - plugins can be destroyed twice (diff)
downloadice-b5042ce24aaa2dcff2092046b322ff61c3d9ef8c.tar.bz2
ice-b5042ce24aaa2dcff2092046b322ff61c3d9ef8c.tar.xz
ice-b5042ce24aaa2dcff2092046b322ff61c3d9ef8c.zip
Squashed commit of the following:
commit 8019e6de4480f361a83d8944afec60793454c322 Author: Benoit Foucher <benoit@zeroc.com> Date: Wed Jan 7 17:16:40 2009 +0100 Fixed bug 3516 - Fixed scaling issue when using round-robin replica groups commit 6c36afb32dda8b37b7d5330ed51a439bc73b17db Author: Benoit Foucher <benoit@zeroc.com> Date: Wed Jan 7 17:16:36 2009 +0100 Fixed bug 3230 - IceGrid node leak
Diffstat (limited to 'cpp/src/IceGrid/NodeI.cpp')
-rw-r--r--cpp/src/IceGrid/NodeI.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/NodeI.cpp b/cpp/src/IceGrid/NodeI.cpp
index 6381b39760e..77ed21db79e 100644
--- a/cpp/src/IceGrid/NodeI.cpp
+++ b/cpp/src/IceGrid/NodeI.cpp
@@ -831,9 +831,17 @@ NodeI::read(const string& filename, Ice::Long pos, int size, Ice::Long& newPos,
}
void
-NodeI::destroy()
+NodeI::shutdown()
{
IceUtil::Mutex::Lock sync(_serversLock);
+ for(map<string, set<ServerIPtr> >::const_iterator p = _serversByApplication.begin();
+ p != _serversByApplication.end(); ++p)
+ {
+ for(set<ServerIPtr>::const_iterator q = p->second.begin(); q != p->second.end(); ++q)
+ {
+ (*q)->shutdown();
+ }
+ }
_serversByApplication.clear();
}