1.9. Section 9: Tasks and Synchronization

Tasks, protected types and task-related statements are permitted subject to the restrictions of the Ravenscar Profile.

Except for the restriction on the number of tasks in an entry queue, the compiler will reject any program that does not conform to the Ravenscar Profile.

1.9.1. type Duration

The predefined type Duration is 32-bit fixed-point type. The value of the least significant bit is one microsecond. Table 1-3 gives the attributes of this type.

Table 1-3. Attributes of the Predefined Type Duration

Attribute Value Comment
Duration'Delta 1.0E-6 One microsecond
Duration'Small 1.0E-6 One microsecond
Duration'First -2147.483648 Approx. -35 minutes
Duration'Last 2147.483647 Approx. 35 minutes

The types Time and Time_Span from predefined package Ada.Real_Time have the same representation as type Duration. However the type Time is declared as a modular type and comparisons of two times correctly account for the 71-minute cycle.

1.9.2. Shared Variables

ERC32 Ada supports the predefined pragma Volatile, which guarantees that a variable will be fetched from memory each time it is referenced, and will be stored in memory on each assignment.

ERC32 Ada also supports the predefined pragmas Atomic, Atomic_Components, and Volatile_Components, as specified in Section C.6 of the Ada 95 Reference Manual.