diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-11-08 10:00:09 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-11-08 10:00:09 +0000 |
commit | 2496d1c85fe8bd9fe7f343084ba68ac99b7abaac (patch) | |
tree | ded7d3c012a30f978db0fb2ecf81fadcfcebfe52 /cpp/src/IceGrid/NodeI.cpp | |
parent | windows fixes for http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=534 (diff) | |
download | ice-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.cpp | 18 |
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 { // |