CVS difference for ais/ai-00297.txt

Differences between 1.6 and version 1.7
Log of other versions for file ais/ai-00297.txt

--- ais/ai-00297.txt	2003/02/19 02:19:51	1.6
+++ ais/ai-00297.txt	2003/06/06 03:00:04	1.7
@@ -1,4 +1,4 @@
-!standard D.8 (00)                                     03-02-10  AI95-00297/04
+!standard D.8 (00)                                     03-03-11  AI95-00297/05
 !class amendment 02-06-01
 !status work item 02-06-01
 !status received 02-06-01
@@ -57,10 +57,6 @@
   ... -- not specified by the language
 end Ada.Real_Time.Timing_Events;
 
-The protected procedure corresponding to the Timing_Event_Handler
-must be a library level definition. Alternatively pragma No_Deeper_Objects
-could be used.
-
 A call to a Set_Handler procedure returns when the Handler is registered.
 
 At a time no earlier than that implied by the time parameter, the handler
@@ -107,7 +103,7 @@
 to allow user-defined protected procedures to be executed at a specified
 time without the need to use a task or a delay statement.
 
-Static Symantics
+Static Semantics
 
 The following language-defined package exists:
 
@@ -115,12 +111,13 @@
   type Timing_Event is limited private;
   type Timing_Event_Handler
        is access protected procedure(Event : in out Timing_Event);
-  procedure Set_Handler(Event : in out Timing_Event; At_Time : in Time;
-            Handler: in Timing_Event_Handler);
-  procedure Set_Handler(Event : in out Timing_Event; In_Time: in Time_Span;
-            Handler: in Timing_Event_Handler);
+  procedure Set_Handler(Event : in out Timing_Event;
+            At_Time : in Time; Handler: in Timing_Event_Handler);
+  procedure Set_Handler(Event : in out Timing_Event;
+            In_Time: in Time_Span; Handler: in Timing_Event_Handler);
   function Is_Handler_Set(Event : Timing_Event) return Boolean;
-  function Current_Handler(Event : Timing_Event) return Timing_Event_Handler;
+  function Current_Handler(Event : Timing_Event)
+           return Timing_Event_Handler;
   procedure Cancel_Handler(Event : in out Timing_Event;
             Cancelled : out Boolean);
   function Time_Of_Event(Event : Timing_Event) return Time;
@@ -129,57 +126,60 @@
 end Ada.Real_Time.Timing_Events;
 
 An object of type Timing_Event is said to be set if it has a
-linked Timing_Event_Handler. An object is said to be cleared
-if it has no linked Timing_Event_Handler. All Timing_Event objects
+registered Timing_Event_Handler. An object is said to be cleared
+if it has no registered Timing_Event_Handler. All Timing_Event objects
 are initially cleared.
 
-A call to a Set_Handler procedure returns when the timing event is set.
+A call to a Set_Handler procedure returns after the Timing_Event
+denoted by Event is set.
 
 Dynamic Semantics
 
 A call of either Set_Handler procedure is not a potentially suspending
-operation and hence can be called from within a Timing_Event_Handler.
+operation and hence can be called from within an object of type
+Timing_Event_Handler.
 
 Following a call of a Set_Handler procedure, at a time no earlier than
-that implied by the time parameter, the Timing_Event_Handler procedure
+that specified by the time parameter, the Timing_Event_Handler procedure
 is executed. The rules governing timing accuracy are the same as in D.9.
 The Timing_Event_Handler is only executed if the timing event is set
-at the time of execution. Following the execution of the Timing_Event_Handler
-the Timing_Event is cleared.
+at the time of execution. Following the execution of the
+Timing_Event_Handler the Timing_Event denoted by Event is cleared.
 
-When a Set_Handler procedure is called a check is made that the
+When a Set_Handler procedure is called, a check is made that the
 ceiling priority of Timing_Event_Handler is Interrupt_Priority'last.
 If the check fails, Program_Error is raised.
 
 If a Set_Handler procedure is called with zero or negative In_Time or with
-At_time indicating a time in the past then Timing_Event_Handler is
+At_Time indicating a time in the past then Timing_Event_Handler is
 executed immediately by the task executing the Set_Handler call.
-Event is cleared.
+The Timing_Event denoted by Event is cleared.
 
 An exception propagated from a Timing_Event_Handler invoked by
 a timing event has no effect.
 
 A call to a Set_Handler procedure for a Timing_Event that is already
-set will override the first set operation. Event remains set.
+set will initially cancel the earlier registration.
+The Timing_Event denoted by Event remains set.
 
 A call to Is_Handler_Set returns True if Event is set;
 otherwise it returns False.
 
-A call to Cancel_Handler returns after the Event is cleared.
-Cancelled is set to True if Event was set prior to the call;
-otherwise the parameter is set to False and the call has no effect.
+A call to Cancel_Handler returns after the Timing_Event denoted by Event
+is cleared. Cancelled is assigned True if Event was set prior to it
+being cleared; otherwise the parameter is assigned False.
 
 A call to Current_Handler returns with the current Timing_Event_Handler.
-If Event is not set Current_Handler returns null.
+If the Timing_Event denoted Event is not set, Current_Handler returns null.
 
 A call to Time_Of_Event returns with the time of Event.
 If Event is not set, Time_Of_Event returns Ada.Real_Time.Time_First.
 
-As the final step of finalization of a Timing_Event, the Timing_Event
-is cleared.
+As the final step of finalization of an object of type Timing_Event,
+the Timing_Event is cleared.
 
-If a number of timing events are set for the same time, execution
-is in FIFO order.
+If several timing events are registered for the same time,
+they are executed in FIFO order.
 
 Implementation Advice
 
@@ -192,7 +192,7 @@
 No_Local_Timing_Events
 	Timing_Events shall be declared only at library level.
 
-Add this restriction to Ravenscar definition (D.13).
+Add this restriction to the Ravenscar definition (D.13).
 
 
 !discussion
@@ -226,7 +226,7 @@
 with System; use System;
 ...
 
-protected Watchdog is  -- library level declaration
+protected Watchdog is
   pragma Interrupt_Priority (Interrupt_Priority'Last);
   entry Alarm_Control;    -- called by alarm handling task
   procedure Timer(TE : in out Timing_Event);    -- timer event code
@@ -268,7 +268,7 @@
 with System; use System;
 ...
 
-protected Pulser is -- library level
+protected Pulser is
   pragma Interrupt_Priority (Interrupt_Priority'Last);
   procedure Start;
   procedure Stop;

Questions? Ask the ACAA Technical Agent