Ada Conformity Assessment Authority      Home Conformity Assessment   Test Suite ARGAda Standard
 
Annotated Ada Reference Manual (Ada 202x Draft 26)Legal Information
Contents   Index   References   Search   Previous   Next 

D.5.2 Dynamic Priorities for Protected Objects

1/3
{AI95-00327-01} {AI05-0299-1} This subclause specifies how the priority of a protected object can be modified or queried at run time. 

Static Semantics

2/5
{AI95-00327-01} {AI12-0230-1} The following attributes are attribute is defined for a prefix P that denotes a protected object:
3/2
P'Priority
{AI95-00327-01} Denotes a non-aliased component of the protected object P. This component is of type System.Any_Priority and its value is the priority of P. P'Priority denotes a variable if and only if P denotes a variable. A reference to this attribute shall appear only within the body of P.
3.1/5
 P'Relative_Deadline

{AI12-0230-1} Denotes a non-aliased component of the protected object P. This component is of type Ada.Real_Time.Time_Span and its value is the relative deadline of P. P'Relative_Deadline denotes a variable if and only if P denotes a variable. A reference to this attribute shall appear only within the body of P. 
4/5
{AI95-00327-01} {AI12-0230-1} The initial value of the this attribute Priority is determined by the initial value of the priority of the protected object (see D.3) [, and can be changed by an assignment]. The initial value of the attribute Relative_Deadline is determined by the initial value of the relative deadline of the protected object (see D.3)[, and can be changed by an assignment]. 

Dynamic Semantics

5/3
{AI95-00327-01} {AI05-0264-1} If the locking policy Ceiling_Locking (see D.3) is in effect, then the ceiling priority of a protected object P is set to the value of P'Priority at the end of each protected action of P.
6/3
{AI95-00445-01} {AI05-0229-1} If the locking policy Ceiling_Locking is in effect, then for a protected object P with either an Attach_Handler or Interrupt_Handler aspect specified for one of its procedures, a check is made that the value to be assigned to P'Priority is in the range System.Interrupt_Priority. If the check fails, Program_Error is raised. 

Metrics

7/2
{AI95-00327-01} The implementation shall document the following metric:
8/2
The difference in execution time of calls to the following procedures in protected object P:
9/2
protected P is
   procedure Do_Not_Set_Ceiling (Pr : System.Any_Priority);
   procedure Set_Ceiling (Pr : System.Any_Priority);
end P;
10/2
protected body P is
   procedure Do_Not_Set_Ceiling (Pr : System.Any_Priority) is
   begin
      null;
   end;
   procedure Set_Ceiling (Pr : System.Any_Priority) is
   begin
      P'Priority := Pr;
   end;
end P;
10.a/2
Documentation Requirement: The metrics for setting the priority of a protected object.
NOTES
11/2
31  {AI95-00327-01} Since P'Priority is a normal variable, the value following an assignment to the attribute immediately reflects the new value even though its impact on the ceiling priority of P is postponed until completion of the protected action in which it is executed. 

Extensions to Ada 95

11.a/2
{AI95-00327-01} {AI95-00445-01} The ability to dynamically change and query the priority of a protected object is new. 

Extensions to Ada 2012

11.b/5
{AI12-0230-1} The ability to dynamically change and query the relative deadline of a protected object is new.

Contents   Index   References   Search   Previous   Next 
Ada-Europe Ada 2005 and 2012 Editions sponsored in part by Ada-Europe