[project @ 1997-08-25 12:28:27 by simonm]
authorsimonm <unknown>
Mon, 25 Aug 1997 12:28:27 +0000 (12:28 +0000)
committersimonm <unknown>
Mon, 25 Aug 1997 12:28:27 +0000 (12:28 +0000)
Fix problem with installing signal handlers on FreeBSD.
Symptom: occasional reports of 'cannot install SEGV handler...',
sometimes when the Haskell program calls 'error'.

ghc/runtime/main/Signals.lc

index 858b407..97fb56b 100644 (file)
@@ -163,7 +163,9 @@ install_segv_handler(void)
     /* FreeBSD seems to generate SIGBUS for stack overflows */
     if (signal(SIGBUS, segv_handler) == SIG_ERR)
        return -1;
-    return ((int) signal(SIGSEGV, segv_handler));
+    if (signal(SIGSEGV, segv_handler) == SIG_ERR)
+       return -1;
+    return 0;
 #else
     return ((int) signal(SIGSEGV, segv_handler) == SIG_ERR);
     /* I think the "== SIG_ERR" is saying "there was no