summaryrefslogtreecommitdiff
path: root/cpp/src/IceBox/ServiceManagerI.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2007-03-14 19:35:53 +0000
committerMark Spruiell <mes@zeroc.com>2007-03-14 19:35:53 +0000
commit87ebb60a6afab1529f9cc15db78a5d1630b6e848 (patch)
treea4bcde4c57d14a490ffc6bc32339612da8d4edbd /cpp/src/IceBox/ServiceManagerI.cpp
parentminor edits (diff)
downloadice-87ebb60a6afab1529f9cc15db78a5d1630b6e848.tar.bz2
ice-87ebb60a6afab1529f9cc15db78a5d1630b6e848.tar.xz
ice-87ebb60a6afab1529f9cc15db78a5d1630b6e848.zip
bug 1994: IceStorm service cannot be restarted
Diffstat (limited to 'cpp/src/IceBox/ServiceManagerI.cpp')
-rw-r--r--cpp/src/IceBox/ServiceManagerI.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/cpp/src/IceBox/ServiceManagerI.cpp b/cpp/src/IceBox/ServiceManagerI.cpp
index d6f1cac0800..7664b0890ac 100644
--- a/cpp/src/IceBox/ServiceManagerI.cpp
+++ b/cpp/src/IceBox/ServiceManagerI.cpp
@@ -542,21 +542,24 @@ IceBox::ServiceManagerI::stopAll()
for(p = _services.rbegin(); p != _services.rend(); ++p)
{
ServiceInfo& info = *p;
- try
- {
- info.service->stop();
- info.active = false;
- }
- catch(const Ice::Exception& ex)
- {
- Warning out(_logger);
- out << "ServiceManager: exception in stop for service " << info.name << ":\n";
- out << ex;
- }
- catch(...)
+ if(info.active)
{
- Warning out(_logger);
- out << "ServiceManager: unknown exception in stop for service " << info.name;
+ try
+ {
+ info.service->stop();
+ info.active = false;
+ }
+ catch(const Ice::Exception& ex)
+ {
+ Warning out(_logger);
+ out << "ServiceManager: exception in stop for service " << info.name << ":\n";
+ out << ex;
+ }
+ catch(...)
+ {
+ Warning out(_logger);
+ out << "ServiceManager: unknown exception in stop for service " << info.name;
+ }
}
}