CVS difference for ais/ai-00237.txt

Differences between 1.7 and version 1.8
Log of other versions for file 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