summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/CHANGES2
-rwxr-xr-xcpp/src/Ice/Service.cpp14
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);
}
//