Problem about Sparc/solaris10 signal in multi-thread environment
Normally if we send a signal to a process which has several threads, the main thread of this process will handle this signal. But I found in some cases an other thread (not main thread) handled signals even if main thread was alive(mostly main thread was being blocked by __pollsys()).
I want to know why and how this happens.
Thanks.
[354 byte] By [
KaiLuo] at [2007-11-14]

according to man signal.h from a solaris 10 machine ...
Asynchronously generated signals are not directed to
a particular thread but are handled by an arbitrary thread
that meets either of the following conditions:
.... a list of conditions.
So if you have threads that you don't want to take signals, then those threads
must block that signal eg pthread_sigmask()
it is just chance that it usually goes to your "main" thread.
tim