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
;;; 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"