From: Gabor Melis Date: Wed, 16 Nov 2005 09:45:50 +0000 (+0000) Subject: 0.9.6.46: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=9afd3aee95bbcfd1880f8e501bc0f3afe94f38a2;p=sbcl.git 0.9.6.46: * use SIGUSR1 for SA_NODEFER detection for gdb on darwin's sake --- diff --git a/src/runtime/interrupt.c b/src/runtime/interrupt.c index f24c454..cb85bee 100644 --- a/src/runtime/interrupt.c +++ b/src/runtime/interrupt.c @@ -1075,24 +1075,22 @@ sigaction_nodefer_test_handler(int signal, siginfo_t *info, void *void_context) static void see_if_sigaction_nodefer_works() { - struct sigaction sa; + struct sigaction sa, old_sa; sa.sa_flags = SA_SIGINFO | SA_NODEFER; sa.sa_sigaction = sigaction_nodefer_test_handler; sigemptyset(&sa.sa_mask); sigaddset(&sa.sa_mask, SIGABRT); - /* We can use any signal for which a handler will be installed - * later. Let's go with SIGINT because gdb barfs on SIGTRAP on - * Darwin. */ - sigaction(SIGINT, &sa, NULL); + sigaction(SIGUSR1, &sa, &old_sa); /* Make sure no signals are blocked. */ { sigset_t empty; sigemptyset(&empty); sigprocmask(SIG_SETMASK, &empty, 0); } - kill(getpid(), SIGINT); + kill(getpid(), SIGUSR1); while (sigaction_nodefer_works == -1); + sigaction(SIGUSR1, &old_sa, NULL); } static void diff --git a/version.lisp-expr b/version.lisp-expr index 46dcb5b..8309609 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.6.45" +"0.9.6.46"