Don't overwrite old memory with 0xaa when doing a realloc
[ghc-hetmet.git] / rts / posix / Signals.c
index 2303d9f..2380eac 100644 (file)
@@ -147,7 +147,7 @@ ioManagerStart (void)
     Capability *cap;
     if (io_manager_pipe < 0) {
        cap = rts_lock();
-       rts_evalIO(cap,&GHCziConc_ensureIOManagerIsRunning_closure,NULL);
+       rts_evalIO(cap,&base_GHCziConc_ensureIOManagerIsRunning_closure,NULL);
        rts_unlock(cap);
     }
 }
@@ -506,7 +506,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 +518,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 +536,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 +545,11 @@ initDefaultHandlers()
 #endif
 }
 
+void
+freeSignalHandlers(void) {
+    if (signal_handlers != NULL) {
+        stgFree(signal_handlers);
+    }
+}
+
 #endif /* RTS_USER_SIGNALS */