X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fposix%2FSignals.c;h=4ae22cd143bc416d59a3074329554ca1eda19e85;hb=4cc37e5758909aaec9ede20604ec4f01c04b54ea;hp=8645f1b826c10b5e122e5ab7426f20de308cf8be;hpb=bb7674b77f65ce48d8c89ad2a19c6a9f66f61d56;p=ghc-hetmet.git diff --git a/rts/posix/Signals.c b/rts/posix/Signals.c index 8645f1b..4ae22cd 100644 --- a/rts/posix/Signals.c +++ b/rts/posix/Signals.c @@ -17,6 +17,7 @@ #include "RtsUtils.h" #include "RtsFlags.h" #include "Prelude.h" +#include "ThrIOManager.h" #ifdef alpha_HOST_ARCH # if defined(linux_HOST_OS) @@ -506,7 +507,7 @@ initDefaultHandlers() sigemptyset(&action.sa_mask); action.sa_flags = 0; if (sigaction(SIGINT, &action, &oact) != 0) { - errorBelch("warning: failed to install SIGINT handler"); + sysErrorBelch("warning: failed to install SIGINT handler"); } #if defined(HAVE_SIGINTERRUPT) @@ -518,7 +519,7 @@ initDefaultHandlers() sigemptyset(&action.sa_mask); action.sa_flags = 0; if (sigaction(SIGCONT, &action, &oact) != 0) { - errorBelch("warning: failed to install SIGCONT handler"); + sysErrorBelch("warning: failed to install SIGCONT handler"); } // install the SIGFPE handler @@ -536,7 +537,7 @@ initDefaultHandlers() sigemptyset(&action.sa_mask); action.sa_flags = 0; if (sigaction(SIGFPE, &action, &oact) != 0) { - errorBelch("warning: failed to install SIGFPE handler"); + sysErrorBelch("warning: failed to install SIGFPE handler"); } #endif @@ -545,4 +546,11 @@ initDefaultHandlers() #endif } +void +freeSignalHandlers(void) { + if (signal_handlers != NULL) { + stgFree(signal_handlers); + } +} + #endif /* RTS_USER_SIGNALS */