fixes ruby 1.9 testsuite failure t916 from #542927 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -1199,6 +1199,15 @@ /* Reset the signal handlers behaviour for the signals the implementation uses since this would be passed to the new process. */ +#if 1 + /* + do not do it as it is wrong. + the __pthread_kill_other_threads_np() is used just before exec, + the successfull one resets signals with handler into DFL behaviour anyway (in kernel), + the failed one needs the signal handler as before to allow creating of new threads + as already noted above + */ +#else sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = SIG_DFL; @@ -1206,6 +1215,7 @@ __libc_sigaction(__pthread_sig_cancel, &sa, NULL); if (__pthread_sig_debug > 0) __libc_sigaction(__pthread_sig_debug, &sa, NULL); +#endif } weak_alias (__pthread_kill_other_threads_np, pthread_kill_other_threads_np)