CVS difference for 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