Stop semantics
When one of the following is issued within the preinitialized environment
for subroutines:
- C exit(), abort(), or signal handling function specifying a normal or abnormal termination
- COBOL STOP RUN statement
- PL/I STOP or EXIT
or when an unhandled condition causes termination of the (only) thread, the logical enclave is terminated. The process level of the environment is retained. Language Environment does not delete those entries that were loaded explicitly by Language Environment during the preinitialization processing.
Attention: If the first entry in the PreInit table is either different
or deleted from when the enclave was last initialized, the assembler
user exit (CEEBXITA), HLL user exit (CEEBINT), or programmer default
runtime options (CEEUOPT) used during either an enclave reinitialization
or enclave termination will either be different or not available.
This will result in unpredictable results. Therefore, when using PreInit
subroutine environments and in order to keep consistent enclave initialization
and termination behavior, users need to ensure the first valid entry
in the PreInit table does not change, especially when it contains
the aforementioned external references.