diff options
author | Michi Henning <michi@zeroc.com> | 2007-02-08 03:47:33 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2007-02-08 03:47:33 +0000 |
commit | b97e1dc601473c56a5c13ce5438e4f7f3514a285 (patch) | |
tree | cba3b8a70f17290b42d7c2f61ab96339eab7524d /cpp/src/Ice/Service.cpp | |
parent | 3.2b update (diff) | |
download | ice-b97e1dc601473c56a5c13ce5438e4f7f3514a285.tar.bz2 ice-b97e1dc601473c56a5c13ce5438e4f7f3514a285.tar.xz ice-b97e1dc601473c56a5c13ce5438e4f7f3514a285.zip |
Bug 1337.
Diffstat (limited to 'cpp/src/Ice/Service.cpp')
-rwxr-xr-x | cpp/src/Ice/Service.cpp | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/cpp/src/Ice/Service.cpp b/cpp/src/Ice/Service.cpp index 80bd46c13ff..8ce7fe991ac 100755 --- a/cpp/src/Ice/Service.cpp +++ b/cpp/src/Ice/Service.cpp @@ -12,6 +12,7 @@ #include <IceUtil/Thread.h> #include <IceUtil/Monitor.h> #include <IceUtil/Mutex.h> +#include <IceUtil/ArgVector.h> #include <Ice/Service.h> #include <Ice/Initialize.h> #include <Ice/Communicator.h> @@ -484,6 +485,15 @@ Ice::Service::main(int& argc, char* argv[], const InitializationData& initData) return run(argc, argv, initData); } +int +Ice::Service::main(StringSeq& args, const InitializationData& initData) +{ + IceUtil::ArgVector av(args); + int rc = main(av.argc, av.argv); + argsToStringSeq(av.argc, av.argv); + return rc; +} + Ice::CommunicatorPtr Ice::Service::communicator() const { @@ -613,15 +623,12 @@ Ice::Service::run(int& argc, char* argv[], const InitializationData& initData) error("service caught unhandled C++ exception"); } - if(_communicator) + try + { + _communicator->destroy(); + } + catch(...) { - try - { - _communicator->destroy(); - } - catch(...) - { - } } return status; @@ -1843,15 +1850,12 @@ Ice::Service::runDaemon(int argc, char* argv[], const InitializationData& initDa close(fds[1]); } - if(_communicator) + try + { + _communicator->destroy(); + } + catch(...) { - try - { - _communicator->destroy(); - } - catch(...) - { - } } return status; |