From: Victor Stinner Date: Tue, 19 Apr 2011 21:30:57 +0000 (+0200) Subject: faulthandler: don't use sigprocmask() X-Git-Tag: v3.3.0a1~2552 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cf2a807831ee93ef39e73fcc682894b0695b6143;p=thirdparty%2FPython%2Fcpython.git faulthandler: don't use sigprocmask() It has an undefined behaviour with threads, only use pthread_sigmask() if it is available (and not broken). --- diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c index abedd5b0c256..48c43912cecc 100644 --- a/Modules/faulthandler.c +++ b/Modules/faulthandler.c @@ -418,16 +418,12 @@ faulthandler_thread(void *unused) const char* errmsg; PyThreadState *current; int ok; -#ifdef HAVE_PTHREAD_H +#if defined(HAVE_PTHREAD_SIGMASK) && !defined(HAVE_BROKEN_PTHREAD_SIGMASK) sigset_t set; /* we don't want to receive any signal */ sigfillset(&set); -#if defined(HAVE_PTHREAD_SIGMASK) && !defined(HAVE_BROKEN_PTHREAD_SIGMASK) pthread_sigmask(SIG_SETMASK, &set, NULL); -#else - sigprocmask(SIG_SETMASK, &set, NULL); -#endif #endif do {