Signals and multiple tasks created by ATTACH

This section describes processes that have multiple dubbed tasks created by using the ATTACH system service. It describes how the first dubbed task in a process can be created and how to create additional dubbed tasks using ATTACH. It also describes how signals work in a process with multiple dubbed tasks created by ATTACH.

The first dubbed thread in a process can be created with the fork callable service or the exec or execmvs callable service, or by the first call to az/OS UNIX callable service from any task in the address space. Subsequent tasks can be created in the process with the ATTACH system service. Once a program running on behalf of the task calls a z/OS UNIX callable service, the task becomes dubbed. Every dubbed task is assigned an 8-character thread ID.

The mvssigsetup and sigaction services allow only one thread in a process to set up a signal interface routine (SIR) and signal catchers. When a process contains two tasks with signals unblocked, the signal is delivered to the task that called mvssigsetup.

If signal action on delivery of a signal specifies termination, stop, or continue, the entire process is terminated, stopped, or continued. Delivery of a signal for default signal action occurs for any of the following conditions:
  1. None of the threads is set up for signals by mvssigsetup and one or more threads do not have the signal blocked.
  2. One of the threads is set up for signals by mvssigsetup and the signal is not blocked by the thread that called mvssigsetup.