CVS difference for ai05s/ai05-0168-1.txt

Differences between 1.3 and version 1.4
Log of other versions for file ai05s/ai05-0168-1.txt

--- ai05s/ai05-0168-1.txt	2010/02/23 22:11:00	1.3
+++ ai05s/ai05-0168-1.txt	2010/04/05 19:25:43	1.4
@@ -1,6 +1,9 @@
-!standard  D.10(5)                                   10-02-23    AI05-0168-1/03
+!standard  D.10(5)                                   10-04-05    AI05-0168-1/04
+!standard  D.10(10)
 !standard  D.10(11)
 !class Amendment 09-10-22
+!status Amendment 2012 10-04-05
+!status ARG Approved 11-0-0  10-02-26
 !status work item 09-10-22
 !status received 09-10-22
 !priority Medium
@@ -51,10 +54,12 @@
      TS : in Ada.Real_Time.Time_Span);
 end Ada.Synchronous_Task_Control.EDF;
 
+Add after D.10(10):
+
 The procedure Suspend_Until_True_And_Set_Deadline blocks the calling task until
 the state of the object S is True: at that point the task becomes ready with a
 deadline of Ada.Real_Time.Clock + TS, and the state of the object becomes
-False.
+False. Suspend_Until_True_And_Set_Deadling is a potentially blocking operation.
 
 Add after D.10(11):
 
@@ -110,9 +115,43 @@
 
    Ada.Synchronous_Task_Control.Set_True(SO);
 
+
+!corrigendum D.10(5)
+
+@dinst
+The type Suspension_Object is a by-reference type.
+@dinss
+The following language-defined library package exists:
+
+@xcode<@b<with> Ada.Real_Time;
+@b<package> Ada.Synchronous_Task_Control.EDF @b<is>
+   @b<procedure> Suspend_Until_True_And_Set_Deadline
+      (S  : @b<in out> Suspension_Object;
+       TS : @b<in>     Ada.Real_Time.Time_Span);
+@b<end> Ada.Synchronous_Task_Control.EDF;>
+
+!corrigendum D.10(10)
+
+@dinsa
+Program_Error is raised upon calling Suspend_Until_True if another task is already
+waiting on that suspension object. Suspend_Until_True is a potentially blocking
+operation (see 9.5.1). 
+@dinst
+The procedure Suspend_Until_True_And_Set_Deadline blocks the calling task until
+the state of the object S is True: at that point the task becomes ready with a
+deadline of Ada.Real_Time.Clock + TS, and the state of the object becomes
+False. Suspend_Until_True_And_Set_Deadling is a potentially blocking operation.
 
---!corrigendum D.10(4)
+!corrigendum D.10(11)
 
+@dinsa
+The implementation is required to allow the calling of Set_False and Set_True
+during any protected action, even one that has its ceiling priority in the
+Interrupt_Priority range.
+@dinst
+@xindent<@s9<NOTES@hr
+5  More complex schemes, such as setting the deadline relative to when Set_True
+is called, can be programmed using a protected object.>>
 
 !ACATS test
 
@@ -139,6 +178,23 @@
 
 With EDF you wont a task to run under the influence of one deadline until
 suspended, but when you are woken up have another (later deadline) apply.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, April 5, 2010  2:22 PM
+
+A couple of unnoticed wording glitches in this AI:
+
+The last paragraph of the new wording belongs in in the Dynamic Semantics
+section after D.10(10). Right now, it occurs before the description of the
+other subprograms defined in this clause, even though it follows them in the
+Static Semantics.
+
+It also needs the wording from D.10(10): Suspend_Until_True_and_Set_Deadline
+needs to be a "potentially blocking operation" (it's defined to block).
+
+I'll just make these changes unless anyone objects.
 
 ****************************************************************
 

Questions? Ask the ACAA Technical Agent