CVS difference for ais/ai-00357.txt

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

--- ais/ai-00357.txt	2004/10/26 23:52:26	1.10
+++ ais/ai-00357.txt	2004/12/09 19:55:35	1.11
@@ -1,5 +1,7 @@
-!standard D.03 (00)                                  04-10-10  AI95-00357/06
+!standard D.03 (00)                                  04-12-02  AI95-00357/07
 !class amendment 03-09-27
+!status Amendment 200Y 04-12-02
+!status ARG Approved 10-0-0  04-11-20
 !status work item 03-09-27
 !status received 03-09-27
 !priority Medium
@@ -113,7 +115,7 @@
 D.2.6 Earliest Deadline First Dispatching
 
 The deadline of a task is an indication of the urgency of the task; it
-represents a point on an ideal physical time-line. Unless otherwise specified,
+represents a point on an ideal physical time line. Unless otherwise specified,
 whenever tasks compete for processors or other implementation-defined
 resources, the resources are allocated to the task with the earliest deadline.
 
@@ -134,7 +136,7 @@
 
 with Ada.Real_Time;
 with Ada.Task_Identification;
-package Ada.Dispatching.EDF_Dispatching is
+package Ada.Dispatching.EDF is
   subtype Deadline is Ada.Real_Time.Time;
   Default_Deadline : constant Deadline :=
               Ada.Real_Time.Time_Last;
@@ -143,10 +145,10 @@
               Ada.Task_Identification.Current_Task);
   procedure Delay_Until_And_Set_Deadline(
               Delay_Until_Time : in Ada.Real_Time.Time;
-              TS : in Ada.Real_Time.Time_Span);
+              Deadline_Offset : in Ada.Real_Time.Time_Span);
   function Get_Deadline(T : in Ada.Task_Identification.Task_ID :=
               Ada.Task_Identification.Current_Task) return Deadline;
-end Ada.Dispatching.EDF_Dispatching;
+end Ada.Dispatching.EDF;
 
 Syntax
 
@@ -188,27 +190,25 @@
 
 The procedure Delay_Until_And_Set_Deadline delays the calling task until time
 Delay_Until_Time. When the task becomes runnable again it will have deadline
-Delay_Until_Time + TS.
+Delay_Until_Time + Deadline_Offset.
 
-Setting the deadline of a task to a new value takes place as soon as
-is practical but not while the task is performing a protected action.
-This setting occurs no later than the next abort completion point
-of the task (see 9.8). If the task is currently on a ready queue it
-is removed and re-entered on to the ready queue determined by the
+On a system with a single processor, the setting of a task's deadline
+to the new value occurs immediately at the first point that is outside the
+execution of an abort-deferred operation. If the task is currently on a ready
+queue it is removed and re-entered on to the ready queue determined by the
 rules defined below.
 
 When EDF_Across_Priorities is specified for priority range Low..High
 all ready queues in this range are ordered by deadline.
-The task at the head of a queue is the one with the earliest
-deadline.
+The task at the head of a queue is the one with the earliest deadline.
 
 A task dispatching point occurs for the currently running task T to
-which policy EDF_Within_Priorities applies whenever:
+which policy EDF_Across_Priorities applies whenever:
 
-  o a change to the deadline of T takes effect; or
+  o a change to the deadline of T occurs; or
 
   o a decrease to the deadline of any task on a ready queue for
-    that processor takes effect and the new deadline is earlier than
+    that processor occurs and the new deadline is earlier than
     that of the running task; or
 
   o there is a non-empty ready queue for that processor
@@ -217,21 +217,21 @@
 The currently running task is said to be preempted and is returned to
 the ready queue for its active priority.
 
-Whenever a task T to which policy EDF_Within_Priorities applies is
+Whenever a task T to which policy EDF_Across_Priorities applies is
 added to a ready queue, other than when it is preempted, it is placed on
-the ready queue with the highest priority R, if one exists, such that:
+the ready queue with the highest priority P, if one exists, such that:
    o  a task is executing within a protected object with ceiling
-       priority R; and
+       priority P; and
    o  task T has an earlier deadline than any task executing within
-      a protected object with ceiling priority R; and
-   o  the base priority of task T is greater than R.
+      a protected object with ceiling priority P; and
+   o  the base priority of task T is greater than P.
 If no such ready queue exists the task is added to the ready
 queue for the lowest priority in the range specified as
 EDF_Across_Priorities.
 
 When the setting of the base priority of a task takes effect and the
 new priority is in the range specified as EDF_Across_Priorities,
-the task is added to the ready queues.
+the task is added to the ready queue.
 
 When a task is chosen for execution it runs with the active priority
 of the ready queue from which the task was taken.
@@ -257,6 +257,12 @@
 of this package and the corresponding task object no longer exists,
 the execution of the program is erroneous.
 
+Documentation Requirements
+
+On a multiprocessor, the implementation shall document any conditions that
+cause the completion of the setting of a task's deadline to be delayed later
+than what is specified for a single procressor.
+
 Notes
 
 If two adjacent priority ranges, A..B and B+1..C are specified to have policy
@@ -327,6 +333,7 @@
 at the front of its ready queue even if its deadline is later than
 the next task on the queue.
 
+--!corrigendum
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent