Signal masking lets you specify that a signal will not be delivered until some condition is met.
Nonthreaded environments have only one thread of control. Each signal is masked or unmasked for the entire process.
In multithreaded environments, signal masking is handled differently on different platforms:
On platforms that do not support native threads, signals are masked on a per-process basis. Changing the signal mask on one thread affects the entire process.
On platforms that support native threads, signals are masked on a per-thread basis. Masking a signal on one thread affects that thread only. To mask a signal for the entire process, you must mask the signal for each of its threads.
Threads spawned by a parent thread inherit the signal mask of the parent thread. You can build applications to take advantage of signal-mask inheritance. If a signal must be masked for an entire process, mask it for the main or initial thread. Any thread created thereafter inherits this thread’s signal mask. See the Open Client and Open Server Programmers Supplement for your platform for information on native thread support.