CVS difference for ais/ai-00355.txt

Differences between 1.10 and version 1.11
Log of other versions for file ais/ai-00355.txt

--- ais/ai-00355.txt	2005/04/13 05:37:17	1.10
+++ ais/ai-00355.txt	2005/10/31 05:18:36	1.11
@@ -1,4 +1,4 @@
-!standard D.02.05 (00)                                 05-03-10  AI95-00355/08
+!standard D.02.05 (00)                                 05-10-01  AI95-00355/09
 !standard D.02.01 (01)
 !standard D.02.02 (00)
 !standard D.02.02 (01)
@@ -12,6 +12,7 @@
 !standard D.02.03 (01)
 !standard D.02.04 (01)
 !standard D.04 (07)
+!standard D.09 (14)
 !class amendment 03-09-27
 !status Amendment 200Y 04-09-27
 !status WG9 approved 04-11-18
@@ -85,7 +86,7 @@
 end Ada.Dispatching;
 
 Dispatching serves as the parent of other language-defined library
-units concerned with dispatching.
+units concerned with task dispatching.
 
 Modify D.2.2 to the following:
 
@@ -103,8 +104,8 @@
 
 The form of a pragma Priority_Specific_Dispatching is as follows:
 
-pragma Priority_Specific_Dispatching (policy_identifier,
-          first_priority_expression, last_priority_expression);
+pragma Priority_Specific_Dispatching (
+   policy_identifier, first_priority_expression, last_priority_expression);
 
 Name Resolution Rules
 
@@ -126,7 +127,7 @@
 
 Static Semantics
 
-Pragma Task_Dispatching_Policy specifies the task dispatching policy.
+Pragma Task_Dispatching_Policy specifies the single task dispatching policy.
 
 Pragma Priority_Specific_Dispatching specifies the task dispatching policy for
 the specified range of priorities. Tasks within the range of priorities
@@ -159,7 +160,7 @@
 tasks are inserted into and deleted from the ready queues. A single
 task dispatching policy is specified by a Task_Dispatching_Policy pragma.
 Pragma Priority_Specific_Dispatching assigns distinct dispatching policies
-to ranges of System.Any_Priority.
+to subranges of System.Any_Priority.
 
 If neither pragma applies to any of the program units comprising a
 partition, the task dispatching policy for that partition is unspecified.
@@ -171,7 +172,7 @@
 
 A task that has its base priority changed
 may move from one dispatching policy to another. It is immediately
-dispatched according to the new policy.
+subject to the new dispatching policy.
 
 Implementation Permissions
 
@@ -229,9 +230,9 @@
 
 Dynamic Semantics
 
-The procedures Set_Quantum set the required Quantum value for a single level
-Pri or a range of levels Low .. High. If no quantum is set for
-a Round Robin priority level, Default_Quantum is used.
+The procedures Set_Quantum set the required Quantum value for a single priority
+level Pri or a range of levels Low .. High. If no quantum is set for a Round
+Robin priority level, Default_Quantum is used.
 
 The function Actual_Quantum returns the actual quantum used
 by the implementation for the priority level Pri.
@@ -242,7 +243,8 @@
 
 A call of Actual_Quantum or Set_Quantum raises exception
 Ada.Dispatching.Dispatching_Policy_Error if a predefined policy other than
-Round_Robin_Within_Priorities applies to the specified priority.
+Round_Robin_Within_Priorities applies to the specified priority, or any of the
+priorities in the specified range.
 
 For Round_Robin_Within_Priorities, the dispatching rules
 for FIFO_Within_Priorities apply with the following additional rules:
@@ -260,12 +262,6 @@
   execution time it uses. The accuracy of this accounting is the same as
   that for execution time clocks (see D.14).
 
-o A task that has its base priority set to
-  a Round Robin priority is moved to the tail of the ready queue for its
-  new priority level.
-
-  AARM Note: It will be given a budget as described in the first bullet.
-
 o When a task has exhausted its budget and is without an inherited
   priority (and is not executing within a protected operation), it is moved
   to the tail of the ready queue for its priority level. This is a
@@ -292,6 +288,9 @@
 
 In D.4(7), change "appears in" to "applies to".
 
+Delete the note D.9(14) [because it is talking about a different kind of
+round robin than is defined by this AI].
+
 !example
 
 To specify round robin dispatching for the lowest priority in a 32-priority
@@ -355,7 +354,7 @@
 @b<end> Ada.Dispatching;>
 
 Dispatching serves as the parent of other language-defined library
-units concerned with dispatching.
+units concerned with task dispatching.
 
 !corrigendum D.2.2(00)
 
@@ -378,12 +377,12 @@
 !corrigendum D.2.2(02)
 
 @dinsa
-@fa<@b<pragma> Task_Dispatching_Policy (@i<policy_>identifier);>
+@fa<@b<pragma> Task_Dispatching_Policy (@i<policy_>@fa<identifier>);>
 @dinss
-The form of a @fa<pragma> Priority_Specific_Dispatching is as follows:
+@xindent<The form of a @fa<pragma> Priority_Specific_Dispatching is as follows:>
 
-@fa<@b<pragma> Priority_Specific_Dispatching (@i<policy_>identifier,
-@i<first_priority_>expression, @i<last_priority_>expression);>
+@xindent<@ @b<pragma> Priority_Specific_Dispatching (@hr
+@ @ @ @ @i<policy_>@fa<identifier>, @i<first_priority_>@fa<expression>, @i<last_priority_>@fa<expression>);>
 
 @i<@s8<Name Resolution Rules>>
 
@@ -409,7 +408,7 @@
 
 @i<@s8<Static Semantics>>
 
-@fa<Pragma> Task_Dispatching_Policy specifies the task dispatching policy.
+@fa<Pragma> Task_Dispatching_Policy specifies the single task dispatching policy.
 
 @fa<Pragma> Priority_Specific_Dispatching specifies the task dispatching policy
 for the specified range of priorities. Tasks within the range of priorities
@@ -454,7 +453,7 @@
 tasks are inserted into and deleted from the ready queues. A single
 task dispatching policy is specified by a Task_Dispatching_Policy pragma.
 Pragma Priority_Specific_Dispatching assigns distinct dispatching policies
-to ranges of System.Any_Priority.
+to subranges of System.Any_Priority.
 
 If neither @fa<pragma> applies to any of the program units comprising a
 partition, the task dispatching policy for that partition is unspecified.
@@ -466,7 +465,7 @@
 
 A task that has its base priority changed
 may move from one dispatching policy to another. It is immediately
-dispatched according to the new policy.
+subject to the new dispatching policy.
 
 !corrigendum D.2.2(17)
 
@@ -542,9 +541,9 @@
 
 @i<@s8<Dynamic Semantics>>
 
-The procedures Set_Quantum set the required Quantum value for a single level
-Pri or a range of levels Low .. High. If no quantum is set for
-a Round Robin priority level, Default_Quantum is used.
+The procedures Set_Quantum set the required Quantum value for a single priority
+level Pri or a range of levels Low .. High. If no quantum is set for a Round
+Robin priority level, Default_Quantum is used.
 
 The function Actual_Quantum returns the actual quantum used
 by the implementation for the priority level Pri.
@@ -554,10 +553,10 @@
 returns False.
 
 A call of Actual_Quantum or Set_Quantum raises exception
-Ada.Dispatching.Dispatching_Policy_Error if a predefined policy other than
-Round_Robin_Within_Priorities applies to the specified priority.
+Dispatching.Dispatching_Policy_Error if a predefined policy other than
+Round_Robin_Within_Priorities applies to the specified priority,
+or any of the priorities in the specified range.
 
-
 For Round_Robin_Within_Priorities, the dispatching rules
 for FIFO_Within_Priorities apply with the following additional rules:
 
@@ -574,10 +573,6 @@
   execution time it uses. The accuracy of this accounting is the same as
   that for execution time clocks (see D.14).>
 
-@xbullet<A task that has its base priority set to
-  a Round Robin priority is moved to the tail of the ready queue for its
-  new priority level.>
-
 @xbullet<When a task has exhausted its budget and is without an inherited
   priority (and is not executing within a protected operation), it is moved
   to the tail of the ready queue for its priority level. This is a
@@ -609,6 +604,14 @@
 If no Queuing_Policy pragma applies to any of the program units comprising the
 partition, the queuing policy for that partition is FIFO_Queuing. The rules for
 this policy are specified in 9.5.3 and 9.7.1.
+
+!corrigendum D.9(14)
+
+@ddel
+@xindent<@s9<40  The execution time of a delay_statement that does not cause
+the task to be blocked (e.g. "@b<delay> 0.0;" ) is of interest in situations
+where delays are used to achieve voluntary round-robin task dispatching among
+equal-priority tasks.>>
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent