CVS difference for ai05s/ai05-0202-1.txt
--- ai05s/ai05-0202-1.txt 2011/03/11 01:07:20 1.5
+++ ai05s/ai05-0202-1.txt 2011/03/17 07:06:30 1.6
@@ -1,5 +1,7 @@
!standard C.7.3(8/2) 11-02-19 AI05-0202-1/03
!class binding interpretation 10-02-12
+!status Amendment 2012 11-03-10
+!status ARG Approved 7-0-1 10-02-20
!status work item 10-02-12
!status received 09-09-24
!priority Medium
@@ -75,12 +77,44 @@
introduce undesirable distributed overhead on behalf of this very unusual
circumstance.
---!corrigendum 3.9.3(4/2)
+!corrigendum C.7.3(8/2)
+@drepl
+The type Termination_Handler identifies a protected procedure to be executed by
+the implementation when a task terminates. Such a protected procedure is called
+a @i<handler>. In all cases T identifies the task that is terminating. If the
+task terminates due to completing the last statement of its body, or as a
+result of waiting on a terminate alternative, then Cause is set to Normal and X
+is set to Null_Occurrence. If the task terminates because it is being aborted,
+then Cause is set to Abnormal and X is set to Null_Occurrence. If the task
+terminates because of an exception raised by the execution of its
+@fa<task_body>, then Cause is set to Unhandled_Exception and X is set to the
+associated exception occurrence.
+@dby
+The type Termination_Handler identifies a protected procedure to be executed by
+the implementation when a task terminates. Such a protected procedure is called
+a @i<handler>. In all cases T identifies the task that is terminating. If the
+task terminates due to completing the last statement of its body, or as a result
+of waiting on a terminate alternative, and the finalization of the task completes
+normally, then Cause is set to Normal and X is set to Null_Occurrence. If the
+task terminates because it is being aborted, then Cause is set to Abnormal;
+X is set to Null_Occurrence if the finalization of the task completes normally.
+If the task terminates because of an exception raised by the execution of
+its @fa<task_body>, then Cause is set to Unhandled_Exception; X is set to
+the associated exception occurrence if the finalization of the task completes
+normally. Independent of how the task completes, if finalization of the task
+propagates an exception, then Cause is either Unhandled_Exception or
+Abnormal, and X is an exception occurrence that identifies the
+Program_Error exception.
+
!ACATS Test
An ACATS C-Test should be created that checks this semantics.
+
+!ASIS
+
+No impact on ASIS.
!appendix
Questions? Ask the ACAA Technical Agent