diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2009-08-17 14:56:30 -0230 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2009-08-17 14:56:30 -0230 |
commit | b7e9f24fcc57defa65e4478ee0af9283bba268b2 (patch) | |
tree | d53ee6a86f9e19d95341ff7a7f660f3b9a0f7614 /cpp/src/Ice/Application.cpp | |
parent | Bug 3140 - skip BOM at top of included file (diff) | |
download | ice-b7e9f24fcc57defa65e4478ee0af9283bba268b2.tar.bz2 ice-b7e9f24fcc57defa65e4478ee0af9283bba268b2.tar.xz ice-b7e9f24fcc57defa65e4478ee0af9283bba268b2.zip |
Revert fix for bug 3696
Diffstat (limited to 'cpp/src/Ice/Application.cpp')
-rw-r--r-- | cpp/src/Ice/Application.cpp | 114 |
1 files changed, 43 insertions, 71 deletions
diff --git a/cpp/src/Ice/Application.cpp b/cpp/src/Ice/Application.cpp index de7ad79d6b5..5707a1a0478 100644 --- a/cpp/src/Ice/Application.cpp +++ b/cpp/src/Ice/Application.cpp @@ -323,18 +323,12 @@ Ice::Application::main(int argc, char* argv[]) { setProcessLogger(new LoggerI(argv[0], "")); } - return mainInternal(argc, argv, InitializationData(), 0); + return main(argc, argv, InitializationData()); } int Ice::Application::main(int argc, char* argv[], const char* configFile) { - return main(argc, argv, configFile, 0); -} - -int -Ice::Application::main(int argc, char* argv[], const char* configFile, const Ice::PropertiesPtr& overrideProps) -{ // // We don't call the main below to avoid a deprecated warning // @@ -374,7 +368,7 @@ Ice::Application::main(int argc, char* argv[], const char* configFile, const Ice return EXIT_FAILURE; } } - return mainInternal(argc, argv, initData, overrideProps); + return main(argc, argv, initData); } int @@ -384,7 +378,46 @@ Ice::Application::main(int argc, char* argv[], const InitializationData& initDat { setProcessLogger(new LoggerI(argv[0], "")); } - return mainInternal(argc, argv, initData, 0); + + if(_communicator != 0) + { + Error out(getProcessLogger()); + out << "only one instance of the Application class can be used"; + return EXIT_FAILURE; + } + int status; + + if(_signalPolicy == HandleSignals) + { + try + { + // + // The ctrlCHandler must be created before starting any thread, in particular + // before initializing the communicator. + // + CtrlCHandler ctrCHandler; + _ctrlCHandler = &ctrCHandler; + + status = mainInternal(argc, argv, initData); + + // + // Set _ctrlCHandler to 0 only once communicator->destroy() has completed. + // + _ctrlCHandler = 0; + } + catch(const CtrlCHandlerException&) + { + Error out(getProcessLogger()); + out << "only one instance of the CtrlCHandler class can be used"; + status = EXIT_FAILURE; + } + } + else + { + status = mainInternal(argc, argv, initData); + } + + return status; } int @@ -402,13 +435,6 @@ Ice::Application::main(const StringSeq& args, const char* configFile) } int -Ice::Application::main(const StringSeq& args, const char* configFile, const Ice::PropertiesPtr& overrideProps) -{ - ArgVector av(args); - return main(av.argc, av.argv, configFile, overrideProps); -} - -int Ice::Application::main(const StringSeq& args, const InitializationData& initData) { ArgVector av(args); @@ -587,53 +613,7 @@ Ice::Application::interrupted() } int -Ice::Application::mainInternal(int argc, char* argv[], const InitializationData& initData, - const Ice::PropertiesPtr& overrideProps) -{ - if(_communicator != 0) - { - Error out(getProcessLogger()); - out << "only one instance of the Application class can be used"; - return EXIT_FAILURE; - } - int status; - - if(_signalPolicy == HandleSignals) - { - try - { - // - // The ctrlCHandler must be created before starting any thread, in particular - // before initializing the communicator. - // - CtrlCHandler ctrCHandler; - _ctrlCHandler = &ctrCHandler; - - status = executeRun(argc, argv, initData, overrideProps); - - // - // Set _ctrlCHandler to 0 only once communicator->destroy() has completed. - // - _ctrlCHandler = 0; - } - catch(const CtrlCHandlerException&) - { - Error out(getProcessLogger()); - out << "only one instance of the CtrlCHandler class can be used"; - status = EXIT_FAILURE; - } - } - else - { - status = executeRun(argc, argv, initData, overrideProps); - } - - return status; -} - -int -Ice::Application::executeRun(int argc, char* argv[], const InitializationData& initializationData, - const Ice::PropertiesPtr& overrideProps) +Ice::Application::mainInternal(int argc, char* argv[], const InitializationData& initializationData) { int status; @@ -652,14 +632,6 @@ Ice::Application::executeRun(int argc, char* argv[], const InitializationData& i // InitializationData initData = initializationData; initData.properties = createProperties(argc, argv, initData.properties, initData.stringConverter); - if(overrideProps) - { - Ice::PropertyDict props = overrideProps->getPropertiesForPrefix(""); - for(PropertyDict::const_iterator p = props.begin(); p != props.end(); ++p) - { - initData.properties->setProperty(p->first, p->second); - } - } // // If the process logger is the default logger, we now replace it with a |