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