Synchronous POSIX signal and Language Environment condition handling interactions
This topic discusses how Language Environment processes most synchronous POSIX signals. (The term POSIX signal includes both POSIX-defined signals and C-language signals.) With the exception of the POSIX signals listed in POSIX signals that do not enter condition handling, normal Language Environment condition handling steps occur after a specific thread is selected as the target of a possible signal delivery. This applies whether the signal was directed to a specific thread or to a process (or processes).
- A signal you generate by calling the CEESGL (signal a condition) callable service
- A hardware or software exception caused by a specific thread,
which will be delivered to the incurring thread
These are the exceptions typically caught by ESTAE.
- A kill() to the current process, a raise(), or a sigqueue() if the process has but a single thread or the signal happens to be delivered to the thread that issued the kill(), raise() or sigqueue().
- A pthread_kill() issued by a thread to itself
The signal mask is ignored for a signal caused by a program check.
Language Environment processes POSIX signals by using the three general steps of Language Environment condition handling: enablement, condition, and termination imminent, as described in Enablement step for signals under z/OS UNIX, Condition step for POSIX signals under Language Environment, and Termination imminent step under z/OS UNIX.