From 03c9ff66e4694988b22fee48c46a0b4a5632f21e Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 19 Mar 2004 03:23:42 +0000 Subject: [PATCH] Block SIGPIPE in CrashSignalHandler. --- stepmania/src/archutils/Unix/CrashHandler.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/stepmania/src/archutils/Unix/CrashHandler.cpp b/stepmania/src/archutils/Unix/CrashHandler.cpp index d553bd54f1..d6cc9a9e1c 100644 --- a/stepmania/src/archutils/Unix/CrashHandler.cpp +++ b/stepmania/src/archutils/Unix/CrashHandler.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "RageLog.h" /* for RageLog::GetAdditionalLog, etc, only */ #include "RageThreads.h" @@ -233,6 +234,15 @@ void CrashSignalHandler( int signal ) _exit(1); } + /* Block SIGPIPE, so we get EPIPE. */ + struct sigaction sa; + sa.sa_handler = SIG_IGN; + if( sigaction( SIGPIPE, &sa, NULL ) != 0 ) + { + safe_print(fileno(stderr), "sigaction() failed: %s", strerror(errno), NULL); + /* non-fatal */ + } + static int received = 0; static pid_t childpid = 0;