diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/CHANGES | 2 | ||||
-rwxr-xr-x | cpp/src/Ice/Service.cpp | 14 |
2 files changed, 9 insertions, 7 deletions
diff --git a/cpp/CHANGES b/cpp/CHANGES index f5536004a17..8a21742fc8c 100644 --- a/cpp/CHANGES +++ b/cpp/CHANGES @@ -1,6 +1,8 @@ Changes since version 1.5.1 --------------------------- +- Changed Ice::Service to use _exit() in the daemon parent. + - Fixed a bug with AMD exception handling, where it was possible that certain exceptions propagate out of ice_response() or ice_exception(), and therefore such exceptions were not handled diff --git a/cpp/src/Ice/Service.cpp b/cpp/src/Ice/Service.cpp index b771de66de7..7224b114a70 100755 --- a/cpp/src/Ice/Service.cpp +++ b/cpp/src/Ice/Service.cpp @@ -1306,8 +1306,8 @@ Ice::Service::runDaemon(int argc, char* argv[]) continue; } - cerr << argv[0] << ": " << strerror(errno) << endl; - return EXIT_FAILURE; + cerr << argv[0] << ": " << strerror(errno) << endl << flush; + _exit(EXIT_FAILURE); } break; } @@ -1330,17 +1330,17 @@ Ice::Service::runDaemon(int argc, char* argv[]) } cerr << argv[0] << ": I/O error while reading error message from child:" << endl - << strerror(errno) << endl; - return EXIT_FAILURE; + << strerror(errno) << endl << flush; + _exit(EXIT_FAILURE); } pos += n; break; } - cerr << argv[0] << ": failure occurred in daemon:" << endl << msg << endl; - return EXIT_FAILURE; + cerr << argv[0] << ": failure occurred in daemon:" << endl << msg << endl << flush; + _exit(EXIT_FAILURE); } - return EXIT_SUCCESS; + _exit(EXIT_SUCCESS); } // |