diff options
-rw-r--r-- | Modules/faulthandler.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c index b300ef1..abc12a0 100644 --- a/Modules/faulthandler.c +++ b/Modules/faulthandler.c @@ -399,6 +399,17 @@ faulthandler_thread(void *unused) const char* errmsg; PyThreadState *current; int ok; +#ifdef HAVE_PTHREAD_H + 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 { st = PyThread_acquire_lock_timed(thread.cancel_event, |