CVS difference for ais/ai-00237.txt
--- ais/ai-00237.txt 2000/12/08 00:03:42 1.7
+++ ais/ai-00237.txt 2001/05/26 02:55:11 1.8
@@ -1,5 +1,6 @@
-!standard C.07.02 (17) 00-12-07 AI95-00237/03
+!standard C.07.02 (17) 01-05-20 AI95-00237/04
!class binding interpretation 00-05-31
+!status ARG approved 8-0-0 01-05-20
!status work item 00-06-01
!status received 00-05-16
!qualifier Clarification
@@ -14,6 +15,9 @@
at any point after their task is terminated and no later than the completion
of the master of the instantiation of Ada.Task_Attributes that created them.
+It is a bounded error to call Ada.Task_Identification.Current_Task from the
+finalization of a task attribute.
+
!question
C.7.2(17) says:
@@ -39,10 +43,12 @@
Delete C.7.2(17).
-Add the following after C.7.2(29):
- After a task terminates, an implementation may finalize all attributes of
- the task (instead of when the master of the instantiation is finalized), and
- reclaim any other storage associated with the attributes.
+Add the following after C.7.2(28):
+ If the task terminates before the master of the instantiation of
+ Task_Attributes is finalized, an implementation may finalize the object
+ corresponding to the attribute of the task at this time (instead of when
+ the master of the instantiation is finalized), and reclaim any other
+ storage associated with the attribute.
Add "finalization of a task attribute" to C.7.1(17).
@@ -126,16 +132,22 @@
When a task terminates, an implementation shall finalize all attributes of
the task, and reclaim any other storage associated with the attributes.
-!corrigendum C.7.2(29)
+!corrigendum C.7.2(28)
@dinsa
-An implementation is allowed to place restrictions on the maximum number of
-attribute a task may have, the maximum size of each attribut, and the total
-storage size allocated for all attributes of a task.
+An implementation need not actually create the object corresponding to a task
+attribute until its value is set to something other than that of Initial_Value,
+or until Reference is called for the task attribute. Similarly, when the value
+of the attribute is to be reinitialized to that of Initial_Value, the object
+may instead be finalized and its storage reclaimed, to be recreated when needed
+later. While the object does not exist, the function Value may simply return
+Initial_Value, rather than implicitly creating the object.
@dinst
-After a task terminates, an implementation may finalize all attributes of
-the task (instead of when the master of the instantiation is finalized), and
-reclaim any other storage associated with the attributes.
+If the task terminates before the master of the instantiation of
+Task_Attributes is finalized, an implementation may finalize the object
+corresponding to the attribute of the task at this time (instead of when
+the master of the instantiation is finalized), and reclaim any other
+storage associated with the attribute.
!ACATS test
Questions? Ask the ACAA Technical Agent