Author: Amaury Forgeot d'Arc <amaur...@gmail.com> Branch: win32-faulthandler Changeset: r91005:dac86db0cb31 Date: 2017-04-06 19:07 +0200 http://bitbucket.org/pypy/pypy/changeset/dac86db0cb31/
Log: Fixes diff --git a/pypy/module/faulthandler/faulthandler.c b/pypy/module/faulthandler/faulthandler.c --- a/pypy/module/faulthandler/faulthandler.c +++ b/pypy/module/faulthandler/faulthandler.c @@ -368,10 +368,12 @@ #ifdef HAVE_SIGACTION static void faulthandler_user(int signum, siginfo_t *info, void *ucontext) +{ #else static void faulthandler_user(int signum) +{ + void *ucontext = NULL; #endif -{ int save_errno; user_signal_t *user = &user_signals[signum]; @@ -489,10 +491,12 @@ static void #ifdef HAVE_SIGACTION faulthandler_fatal_error(int signum, siginfo_t *info, void *ucontext) +{ #else faulthandler_fatal_error(int signum) +{ + void *ucontext = NULL; #endif -{ int fd = fatal_error.fd; int i; fault_handler_t *handler = NULL; @@ -616,7 +620,7 @@ int err; struct sigaction action; fault_handler_t *handler = &faulthandler_handlers[i]; - +#ifdef HAVE_SIGACTION action.sa_sigaction = faulthandler_fatal_error; sigemptyset(&action.sa_mask); /* Do not prevent the signal from being received from within @@ -628,6 +632,11 @@ action.sa_flags |= SA_ONSTACK; } err = sigaction(handler->signum, &action, &handler->previous); +#else + handler->previous = signal(handler->signum, + faulthandler_fatal_error); + err = (handler->previous == SIG_ERR); +#endif if (err) { return strerror(errno); } @@ -647,7 +656,11 @@ fault_handler_t *handler = &faulthandler_handlers[i]; if (!handler->enabled) continue; +#ifdef HAVE_SIGACTION (void)sigaction(handler->signum, &handler->previous, NULL); +#else + (void)signal(handler->signum, handler->previous); +#endif handler->enabled = 0; } } _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit