CVS difference for ais/ai-00298.txt

Differences between 1.4 and version 1.5
Log of other versions for file ais/ai-00298.txt

--- ais/ai-00298.txt	2003/01/16 01:37:17	1.4
+++ ais/ai-00298.txt	2003/03/04 04:56:23	1.5
@@ -1,5 +1,8 @@
-!standard D.8 (00)                                     03-01-06  AI95-00298/03
+!standard D.2.4 (00)                                   03-02-19  AI95-00298/04
+!reference AI95-00321
 !class amendment 02-06-01
+!status work item 03-02-19
+!status ARG Approved 7-0-1  03-02-08
 !status work item 02-06-01
 !status received 02-06-01
 !priority Medium
@@ -39,21 +42,17 @@
 
 !wording
 
-New section D.14:
+New section D.2.4:
 
-D.14 Additional Task Dispatching Policies
+D.2.4 Non-Preemptive Dispatching
 
-This clause specifies additional task dispatching policies.
-
-D.14.1 Non-Preemptive Dispatching
-
 A non-preemptive dispatching policy is defined via policy_identifier
 Non_Preemptive_FIFO_Within_Priorities.
 
-Syntax
+Legality Rules
 
-pragma Task_Dispatching_Policy (
-	Non_Preemptive_FIFO_Within_Priorities);
+Non_Preemptive_FIFO_Within_Priorities can be specified as the policy_identifier
+of pragma Task_Dispatching_Policy (see D.2.2).
 
 Post-Compilation Rules
 
@@ -84,7 +83,7 @@
 subrange System_Priority to System_Priority'last (see D.3), an
 implementation may allow a task to execute within a protected object
 without raising its active priority provided the protected object does
-not contain pragma Interrupt_Priority, Interrupt_Handler or Attack_Handler.
+not contain pragma Interrupt_Priority, Interrupt_Handler or Attach_Handler.
 
 !discussion
 
@@ -94,6 +93,49 @@
 the earlier proposal.
 
 !examples
+
+!corrigendum D.2.4(01)
+
+@dinsc
+
+A non-preemptive dispatching policy is defined via @i<policy_>@fa<identifier>
+Non_Preemptive_FIFO_Within_Priorities.
+
+@i<@s8<Legality Rules>>
+
+Non_Preemptive_FIFO_Within_Priorities can be specified as the
+@i<policy_>@fa<identifier> of pragma Task_Dispatching_Policy (see D.2.2).
+
+@i<@s8<Post-Compilation Rules>>
+
+If the Non_Preemptive_FIFO_Within_Priorities is specified for a
+partition then Ceiling_Locking (see D.3) shall also be specified
+for that partition.
+
+@i<@s8<Dynamic Semantics>>
+
+When Non_Preemptive_FIFO_Within_Priorities is in effect, modifications
+to the ready queues occur only as follows:
+
+@xbullet<When a blocked task becomes ready, it is added at the tail of the
+ready queue for its active priority.>
+
+@xbullet<When the active priority of a ready task that is not running changes,
+or the setting of its base priority takes effect, the task is moved
+from the ready queue for its old active priority and is added at the
+tail of the ready queue for its new active priority.>
+
+@xbullet<When a task executes a delay_statement that does not result in
+blocking, it is added to the tail of the ready queue for its active
+priority. This is a task dispatching point (see D.2.1).>
+
+@i<@s8<Implementation Permissions>>
+
+Since implementations are allowed to round all ceiling priorities in
+subrange System_Priority to System_Priority'last (see D.3), an
+implementation may allow a task to execute within a protected object
+without raising its active priority provided the protected object does
+not contain pragma Interrupt_Priority, Interrupt_Handler or Attach_Handler.
 
 !ACATS Test
 

Questions? Ask the ACAA Technical Agent