Using exit or _exit when the thread is the IPT

Table 1 describes the actions that are taken for exit or _exit issued from the IPT thread.

Table 1. Using exit or _exit when the thread is the IPT
Step Thread 1 (initial pthread-creating task, or IPT) Thread 2 (pthread-created thread)
1 A request to exit the process is issued from the IPT.  
2 A pthread_quiesce is issued. Control is not returned until all other pthreads in this process end with pthread_exit_and_get.  
3   An asynchronous quiesce event is delivered to this thread.
4   Either the thread and its associated task are terminated by the kernel, or the signal interface routine intercepts the quiesce termination event to do necessary thread cleanup and to issue another pthread_exit_and_get. Interception of quiesce events is specified by the mvssigsetup service.
5   Control is returned to the pthread-creating task initialization routine (QUIESCE_TERM only), the remaining parts of the environment are cleaned up, and control is returned to the caller, terminating the task.
6 Control is returned after the pthread_quiesce call when all other pthreads terminate (perhaps not all tasks have terminated yet).  
7 Process the remaining thread and clean up (such as running exits).  
8 Terminate the process and pass the process status with mvsprocclp status.  
9 When control is returned from mvsprocclp, all pthreads for this process and all subtasks of the IPT have terminated.  
10 The IPT task is no longer associated with the kernel and can now return to its caller or to the system.