Signals

Each thread has an associated signal mask. The signal mask contains a flag for each signal defined by the system. The flag determines which signals are to be blocked from being delivered to a particular thread.

Unlike the signal mask, there is one signal action per signal for all of the threads in the process. Some signal functions work on the process level, having an impact on multiple threads, while others work on the thread level, and only affect one particular thread. For example, the function kill() operates at the process level, whereas the functions pthread_kill() and sigwait() operate at the thread level.

The following are some other signal functions that operate on the process level and can influence multiple threads: