summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-11-08 10:00:09 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-11-08 10:00:09 +0000
commit2496d1c85fe8bd9fe7f343084ba68ac99b7abaac (patch)
treeded7d3c012a30f978db0fb2ecf81fadcfcebfe52 /cpp/src/IceGrid/NodeI.cpp
parentwindows fixes for http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=534 (diff)
downloadice-2496d1c85fe8bd9fe7f343084ba68ac99b7abaac.tar.bz2
ice-2496d1c85fe8bd9fe7f343084ba68ac99b7abaac.tar.xz
ice-2496d1c85fe8bd9fe7f343084ba68ac99b7abaac.zip
Bug fixes
Diffstat (limited to 'cpp/src/IceGrid/NodeI.cpp')
-rw-r--r--cpp/src/IceGrid/NodeI.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/cpp/src/IceGrid/NodeI.cpp b/cpp/src/IceGrid/NodeI.cpp
index 3a6139f2b34..2b428ff04af 100644
--- a/cpp/src/IceGrid/NodeI.cpp
+++ b/cpp/src/IceGrid/NodeI.cpp
@@ -308,18 +308,19 @@ NodeI::patch(const string& application,
try
{
+ set<ServerIPtr>::iterator s = servers.begin();
vector<string> running;
- set<ServerIPtr>::const_iterator s;
- for(s = servers.begin(); s != servers.end(); ++s)
+ while(s != servers.end())
{
if(!(*s)->startPatch(shutdown))
{
running.push_back((*s)->getId());
+ servers.erase(s++);
+ }
+ else
+ {
+ ++s;
}
- }
- for(s = servers.begin(); s != servers.end(); ++s)
- {
- (*s)->waitForPatch();
}
if(!running.empty())
@@ -337,6 +338,11 @@ NodeI::patch(const string& application,
throw ex;
}
+ for(s = servers.begin(); s != servers.end(); ++s)
+ {
+ (*s)->waitForPatch();
+ }
+
try
{
//