I've been trying to look into the ruby1.9.1 bug and have some beginner
questions about our libc.
Do we define SIGCANCEL as __SIGRTMIN?
If so, having redefined __SIGRTMIN from 32 to the awkward number 65,
does that not cause problems when trying to mask it?
"At least inside __start_helper_thread __sigprocmask() should be used"
Does it matter that sigprocmask actually got used and not __sigprocmask?
Maybe they are the same thing. But I suspect there is/was an
implementation of that function which refuses to block SIGCANCEL (same
as pthread_sigmask), and another one that does.
> --- trunk/glibc-ports/kfreebsd/linuxthreads/timer_routines.c 2012/04/09 22:58:58 4186
> +++ trunk/glibc-ports/kfreebsd/linuxthreads/timer_routines.c 2012/04/10 10:13:35 4187
> @@ -186,7 +186,7 @@
> sigset_t oss;
> sigfillset (&ss);
> __sigaddset (&ss, SIGCANCEL);
> - pthread_sigmask (SIG_SETMASK, &ss, &oss);
> + sigprocmask (SIG_SETMASK, &ss, &oss);
> sem_init (&__helper_tid_semaphore, 0, 0);