The unified diff between revisions [3099ff90..] and [e9aa88ea..] is displayed below. It can also be downloaded as a raw diff.

This diff has been restricted to the following files: 'main.cc'

#
#
# patch "main.cc"
#  from [ca8383ced00bdb686905f58eaeac7b1446347219]
#    to [93c14a170425bd2be15e68d0f4eed476f9b77144]
#
============================================================
--- main.cc	ca8383ced00bdb686905f58eaeac7b1446347219
+++ main.cc	93c14a170425bd2be15e68d0f4eed476f9b77144
@@ -260,21 +260,28 @@ main_with_signal_handlers(int argc, char
 {
     typedef struct sigaction* sigaction_ptr;
     static struct sigaction all_signals_action;
+    static struct sigaction ignore_signals_action;
     struct sigaction old_SIGFPE_action;
     struct sigaction old_SIGTRAP_action;
     struct sigaction old_SIGSEGV_action;
     struct sigaction old_SIGBUS_action;
     struct sigaction old_SIGABRT_action;
+    struct sigaction old_SIGPIPE_action;

     all_signals_action.sa_flags   = 0;
     all_signals_action.sa_handler = &unix_style_signal_handler;
     sigemptyset(&all_signals_action.sa_mask);

+    ignore_signals_action.sa_flags   = 0;
+    ignore_signals_action.sa_handler = SIG_IGN;
+    sigemptyset(&ignore_signals_action.sa_mask);
+
     sigaction(SIGFPE , &all_signals_action, &old_SIGFPE_action);
     sigaction(SIGTRAP, &all_signals_action, &old_SIGTRAP_action);
     sigaction(SIGSEGV, &all_signals_action, &old_SIGSEGV_action);
     sigaction(SIGBUS , &all_signals_action, &old_SIGBUS_action);
     sigaction(SIGABRT, &all_signals_action, &old_SIGABRT_action);
+    sigaction(SIGPIPE, &ignore_signals_action, &old_SIGPIPE_action);

     int result = 0;
     bool trapped_signal = false;
@@ -315,6 +322,7 @@ main_with_signal_handlers(int argc, char
     sigaction(SIGSEGV, &old_SIGSEGV_action, sigaction_ptr());
     sigaction(SIGBUS , &old_SIGBUS_action , sigaction_ptr());
     sigaction(SIGABRT, &old_SIGABRT_action, sigaction_ptr());
+    sigaction(SIGPIPE, &old_SIGPIPE_action, sigaction_ptr());

     if(trapped_signal)
       throw unix_signal_exception(em);