Version 1.6 of ai12s/ai12-0081-1.txt

Unformatted version of ai12s/ai12-0081-1.txt version 1.6
Other versions for file ai12s/ai12-0081-1.txt

!standard D.1(17/3)          13-10-21 AI12-0081-1/01
!standard D.16(9/3)
!class binding interpretation 13-10-21
!status Corrigendum 2015 13-12-06
!status WG9 Approved 14-06-27
!status ARG Approved 9-0-1 13-11-15
!status work item 13-10-21
!status received 13-06-16
!priority Low
!difficulty Easy
!qualifier Clarification
!subject Real-time aspects need to specify when they are evaluated
!summary
Real-time aspects of a type are evaluated when an object of the task type is created.
!question
The definition of the various task aspects say that they are "evaluated for each task object". This does not say when that evaluation occurs. When are these aspects evaluated? (When the task object is created.)
!recommendation
(See Summary.)
!wording
For Priority and Interrupt_Priority (D.1.(17/3)):
The expression specified for the Priority or Interrupt_Priority aspect of a task type is evaluated each time an object of the task type is created (see 9.1). For the Priority aspect, the value of the expression is converted to the subtype Priority; for the Interrupt_Priority aspect, this value is converted to the subtype Any_Priority. The priority value is then associated with the task object.
For CPU (D.16(9/3)):
The expression specified for the CPU aspect of a task type is evaluated each time an object of the task type is created (see 9.1). The CPU value is then associated with the task object.
!discussion
The wording for aspect Dispatching_Domain was updated in AI12-0033-1.
Aspect Relative_Deadline already specifies when it is to be evaluated, so no wording change is needed for that aspect.
We don't need to change the wording of D.1(18/3), since the priority of the main subprogram has to be static, and thus does not need to be evaluated.
!corrigendum D.1(17/3)
Replace the paragraph:
The expression specified for the Priority or Interrupt_Priority aspect of a task is evaluated for each task object (see 9.1). For the Priority aspect, the value of the expression is converted to the subtype Priority; for the Interrupt_Priority aspect, this value is converted to the subtype Any_Priority. The priority value is then associated with the task object whose task declaration specifies the aspect.
by:
The expression specified for the Priority or Interrupt_Priority aspect of a task type is evaluated each time an object of the task type is created (see 9.1). For the Priority aspect, the value of the expression is converted to the subtype Priority; for the Interrupt_Priority aspect, this value is converted to the subtype Any_Priority. The priority value is then associated with the task object.
!corrigendum D.16(9/3)
Replace the paragraph:
The expression specified for the CPU aspect of a task is evaluated for each task object (see 9.1). The CPU value is then associated with the task object whose task declaration specifies the aspect.
by:
The expression specified for the CPU aspect of a task type is evaluated each time an object of the task type is created (see 9.1). The CPU value is then associated with the task object.
!ASIS
No changes needed.
!ACATS test
No test needed.
!appendix

From the minutes of ARG meeting #49 (Berlin, Germany)

Tucker explains that he cleaned up the D.16.1(20/3), since these are aspects of
task types. Erhard notes that this never says when this evaluation occurs. Randy
notes that this wording is a copy of Priority and CPU. And those don't really say,
either.

These clearly have to happen before the activation of the task.

“The expression specified for the dispatching domain aspect of a task type is
evaluated each time an object of the type is created. If ... is raised; otherwise,
the newly created task is assigned to the domain identified by the value of the
expression.”

Randy will create an AI to make similar changes to all of the other similar Annex
D aspects. He notes that this would fit under the “if it ain't broke, don't
fix it” AI. Erhard says he wants it fixed.

****************************************************************


Questions? Ask the ACAA Technical Agent