diff options
Diffstat (limited to 'base/process_util_posix.cc')
-rw-r--r-- | base/process_util_posix.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/base/process_util_posix.cc b/base/process_util_posix.cc index 9502ca0..425f455 100644 --- a/base/process_util_posix.cc +++ b/base/process_util_posix.cc @@ -233,6 +233,10 @@ bool LaunchApp(const std::vector<std::string>& argv, if (pid == 0) { // Child process +#if defined(OS_MACOSX) + RestoreDefaultExceptionHandler(); +#endif + InjectiveMultimap fd_shuffle; for (file_handle_mapping_vector::const_iterator it = fds_to_remap.begin(); it != fds_to_remap.end(); ++it) { @@ -520,6 +524,10 @@ bool GetAppOutput(const CommandLine& cl, std::string* output) { return false; case 0: // child { +#if defined(OS_MACOSX) + RestoreDefaultExceptionHandler(); +#endif + // Obscure fork() rule: in the child, if you don't end up doing exec*(), // you call _exit() instead of exit(). This is because _exit() does not // call any previously-registered (in the parent) exit handlers, which |