Processing the T_I_U condition

Table 1 indicates that for severity 4 conditions signaled by CEESGL, and for severity 2 and above conditions that remain unhandled after all condition handlers have had a chance to handle them, Language Environment promotes the unhandled condition to T_I_U. See z/OS Language Environment Programming Reference for a discussion of CEESGL. T_I_U is a severity 3 condition with the representation shown in Table 1:

Table 1. T_I_U condition representation
Symbolic feedback code (fc) Severity Message number Message text
CEE066 3 0198 Termination of a thread was signaled.

After promoting the condition to T_I_U, Language Environment does the following:

  1. Language Environment revisits each stack frame on the stack, beginning with the stack frame in which the condition occurred, and progressing towards earlier stack frames. At each stack frame, HLL and user-written condition handlers are given a chance to handle the condition.

    The T_I_U condition maps to the PL/I FINISH condition. Therefore, an established PL/I FINISH ON-unit or registered user-written condition handler can be invoked to handle the condition. After the ON-unit or condition handler completes its processing, the termination activities described in Step 3 take place.

  2. If, during the course of condition handling, the resume cursor is moved and a resume is requested by a condition handler, execution resumes at the instruction pointed to by the resume cursor. If a resume is requested for the T_I_U condition without moving the resume cursor, the thread terminates immediately with no clean-up. See z/OS Language Environment Programming Reference for a discussion of the CEEMRCR service.
  3. If all stack frames have been visited, and the condition remains unhandled, or a FINISH ON-unit or user-written condition handler has processed the condition and returned, Language Environment performs the following termination activities:
    • Sets the reason and return codes. The return code value is based on the severity of the original unhandled condition, not on the T_I_U condition (which is a severity 3).
    • Issues a message for the condition.
    • Prints a traceback and dump depending on the setting of the TERMTHDACT runtime option (see z/OS Language Environment Programming Reference for syntax)
    • Terminates the thread.

    In this release of Language Environment, multithreading is supported only in a POSIX(ON) environment. Unless your application is doing multithreading, therefore, when a thread terminates, the entire enclave terminates.