SIGRT_1 not blocked in Posix Threads (NPTL)
I'm running multithreaded programs on RH Enterprise 4 update 3
I block all signals and handle any signals via sigwait() in the
main thread of my applications.
I'm new to Linux and have typically been running my apps under Solaris 9 on
sparc machines so I'm not quite up to speed on how Linux handles
pthreads with NPTL.
I've discovered that my threads are being interrupted by
SIGRT_1 signals, there maybe others.
(this doesn't happen on Solaris)
for example I block all signals via
sigset_t blockmask;
sigfillset( &blockmask );
pthread_sigmask(SIG_BLOCK,&blockmask,NULL);
This doesn't seem to block the SIGRT_1 signals
Can anyone tell me
1. What are these SIGRT_1 for?
I've have heard these are used to signal thread exits,
but all my threads are detached and persistent.
2. How do I block them, or should I?
3. If I must live with them does this mean I must
programmatically reschedule
any system calls that might be interrupted? (EINTR)
(I sure hope not)
Thanks
Greg
|