z/OS Language Environment Programming Guide for 64-bit Virtual Addressing Mode
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Synchronous POSIX signal and Language Environment condition handling interactions

z/OS Language Environment Programming Guide for 64-bit Virtual Addressing Mode
SA38-0689-00

This section discusses how Language Environment processes most synchronous POSIX signals. (In this section, 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).

Synchronous signal handling takes effect for the following signals, unless they are blocked by the signal mask, or are declared by the arrival of another signal:
  • 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 or ESPIE.

  • 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.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014