AI22-0128-1
!standard D.2.6(13/5) 25-04-18 AI22-0128-1/02
!class Binding Interpretation 25-03-06
!status Amendment 1-2022 25-03-21
!status WG9 Approved 25-07-18
!status ARG Approved 13-0-0 25-03-19
!status work item 25-03-06
!status received 25-01-09
!assigned author Steve Baird
!submitter Randy Brukardt
!priority Low
!difficulty Easy
!qualifier Clarification
!subject Evaluation of Relative_Deadline aspect
State explicitly when the specified Relative_Deadline expression is to be evaluated.
Unlike similar aspects, the wording for the Relative_Deadline aspect does not explicitly state when the specified expression is to be evaluated.
Use wording more similar to what is already used, for example, for the Priority aspect.
Modify D.2.6(13/5):
The initial absolute deadline for a task with a specified Relative_Deadline is the result of adding the [value returned by]{results of evaluating both} a call {to}[of] Real_Time.Clock {and}[ to the value of] the expression specified as the Relative_Deadline aspect, where [this entire computation, including the call of Real_Time.Clock, is]{both evaluations (and the addition) are} performed between task creation and the start of its activation. If the aspect Relative_Deadline is not specified, then the initial absolute deadline of a task is the value of Default_Deadline (Ada.Real_Time.Time_Last). The environment task is also given an initial deadline by this rule, using the value of the Relative_Deadline aspect of the main subprogram (if any).
Although the previous wording mentioned “the value of the expression”, it did not talk explicitly about when the specified expression is evaluated. It also used “computation” when it could have used the defined term evaluation.
None.
@drepl
The initial absolute deadline for a task with a specified Relative_Deadline is the result of adding the value returned by a call of Real_Time.Clock to the value of the @fa{expression} specified as the Relative_Deadline aspect, where this entire computation, including the call of Real_Time.Clock, is performed between task creation and the start of its activation. If the aspect Relative_Deadline is not specified, then the initial absolute deadline of a task is the value of Default_Deadline (Ada.Real_Time.Time_Last). The environment task is also given an initial deadline by this rule, using the value of the Relative_Deadline aspect of the main subprogram (if any).
@dby
The initial absolute deadline for a task with a specified Relative_Deadline is the result of adding the results of evaluating both a call to Real_Time.Clock and the @fa{expression} specified as the Relative_Deadline aspect, where both evaluations (and the addition) are performed between task creation and the start of its activation. If the aspect Relative_Deadline is not specified, then the initial absolute deadline of a task is the value of Default_Deadline (Ada.Real_Time.Time_Last). The environment task is also given an initial deadline by this rule, using the value of the Relative_Deadline aspect of the main subprogram (if any).
No new test needed, this is just clarifying the existing wording.
This issue was originally raised when constructing AI22-0121-1, see the meeting minutes for the January 2025 ARG meeting.